Ansible: Inventory 구성 및 설정 가이드

1. Ansible 인벤토리란? – Ansible: Inventory 구성 및 설정 가이드

Ansible 인벤토리는 여러 대의 원격 호스트에 대한 정보를 저장하는 파일입니다. 이 정보는 Ansible에서 작업을 수행할 대상 호스트 및 호스트 그룹 정보를 제공합니다. 기본적으로 Ansible은 /etc/ansible/hosts 파일을 인벤토리 파일로 사용합니다.

2. Ansible 인벤토리 파일 구조

Ansible 인벤토리 파일은 다음과 같은 자료구조를 사용하여 호스트와 호스트 그룹의 관계를 기술합니다.

  • Hosts: 인벤토리의 최상위 레벨로 개별 호스트와 호스트 그룹을 포함합니다.
  • Groups: 호스트의 묶음을 구성합니다.
  • Children: 그룹 간의 관계를 설정하는 레벨입니다.
  • Variables: 호스트별 또는 그룹별 변수 정보를 가집니다.

3. 인벤토리 파일 구성 팁

Ansible 인벤토리 파일을 구성하는 팁은 다음과 같습니다.

  • 변경이 빈번한 호스트 정보는 호스트 파일 대신 다른 외부 스토리지(예: DNS)에 저장하는 것이 좋습니다.
  • 호스트 그룹을 사용하여 공통된 특성을 가진 묶음을 만듭니다.
  • Children 그룹을 사용하여 다른 그룹의 하위 항목을 추가합니다.
  • 중복되는 코드를 모듈화하고 나중에 인코딩하는 것이 좋습니다.

4. Ansible 인벤토리 설정 예시

다음은 Ansible 인벤토리 파일의 예시입니다.

  • 호스트 세션 이름 및 IP 주소를 나열합니다.
  • 호스트 그룹을 만듭니다.
  • 그룹과 하위 그룹을 만듭니다.
  • 변수를 설정합니다.

4.1. 설치 된 서버와 없는 서버

다음은 설치 된 서버와 없는 서버를 모두 포함하는 예시입니다.

[servers]
192.0.2.1
192.0.2.2
192.0.2.3
192.0.2.4

[servers:vars]
ansible_user=root
ansible_ssh_pass='password'

4.2. 그룹을 사용한 예시

다음은 그룹을 사용하여 호스트를 그룹화하는 예시입니다.

[web]
web1.example.com
web2.example.com

[database]
db1.example.com
db2.example.com

[servers:children]
web
database

5. 마치며

이 가이드를 통해 Ansible 인벤토리 파일을 구성할 수 있는 방법에 대해 알아보았습니다. Ansible 인벤토리는 매우 범용적이고 유연한 요소입니다. 효율적인 인벤토리 파일 구성은 기본적인 인프라, 처리 및 원격 호스트 관리 작업에서 매우 유용합니다.