본문 바로가기
INFRA/Operation

[Ansible] Ansible Inventory

by BTC_보담씨 2023. 6. 9.

베하~~

안녕하세요 항상 웃음이 나는 픠식팀 입니다.

지난번에는 Playbook에 대해서 알아 보았으니 이번에는 Inventory에 대해서 알아 봅시다~

Ansible Inventory란?

인벤토리는 RPG 게임을 해보셨으면 한 번쯤은 아이템 인벤토리라고 들어 보셨을 겁니다.

RPG 게임에서 아이템 인벤토리는 내가 소유하고 있는 아이템의 목록들을 나열해서 재고들을 간편하게 볼 수 있습니다. 

 

Ansible에서도 이런 유사한 역할을 가지고 있는데요 Ansible Inventory는 자동화의 대상들을 작성하여 간편하게 관리할 수 있습니다. 즉 인벤토리는 Ansible이 알고 있는 호스트들의 집합이라고 할 수 있습니다.

 

Inventory 파일의 설정 방법

두 가지의 파일로 Inventory을 설정할 수 있는데요 바로 ini 형태와 yaml 형태 입니다.

사용자가 설정하기 편한 형태로 선택하시면 됩니다.

 

all:
  hosts:
    service.example.com:
  children:
    webservers:
      hosts:
        web1.example.com:
        web2.example.com:
    dbservers:
      hosts:
        db1.example.com:
        db2.example.com:

yaml 형식

 

service.example.com

[webservers]
web1.example.com
web2.example.com

[dbservers]
db1.example.com
db2.example.com

ini 형식

 

그룹, 변수에 대한 설명과 사용 방법은 아래의 공식 Docs에서 아주 자세히 확인 할 수 있습니다.

https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html

 

How to build your inventory — Ansible Documentation

When declared inline with the host, INI values are interpreted as Python literal structures (strings, numbers, tuples, lists, dicts, booleans, None). Host lines accept multiple key=value parameters per line. Therefore they need a way to indicate that a spa

docs.ansible.com

 

ansible.cfg

Ansible의 구성파일 입니다. Ansible 명령을 실행할 때 ansible.cfg 파일의 환경설정이 되어있는 것을 참고하여 명령을 실행하게 됩니다.

 

ansible에서 ansible.cfg 파일을 찾는 순서가 있습니다.

1. ANSIBLE_CONFIG 환경 변수

2. ./ansible.cfg(현재 디렉토리의 ansible.cfg)

3. ~/.ansible.cfg(홈 디렉토리의 .ansible.cfg)

4. /etc/ansible/ansible.cfg

의 순서 입니다.

설정적용 우선순위: 환경변수 > 디렉토리 > 사용자 > 전역 순서입니다.

 

 

[defaults]
inventory = ~/ansible/inventory.yaml

ansible.cfg 파일에서 인벤토리 파일의 위치를 선택할 수 있습니다.

 

뿐만 아니라 cfg 파일을 통해서 다양한 것들을 설정할 수 있는데요

 

[defaults]
inventory = ~/ansible/inventory.yaml
remote_user = ubuntu
private_key_file = /path/to/file

remote_user: ansible이 호스트에 연결하는데 사용하는 기본 사용자의 이름

private_key_file: private_key 파일이 있는 경로를 지정하여 사용

위의 예시 등 아주 다양하게 설정하여 사용 할 수 있습니다.

 

동작 유형의 인벤토리 매개 변수

동작 유형의 인벤토리 매개 변수 ansible.cfg 옵션
ansible_ssh_port 원격 포트
ansible_ssh_user 원격 사용자
ansible_ssh_private_key private_key_file
ansible_shell_type ansible 실행

위에서 작성한 cfg 파일의 [defaults] 섹션에서 기본값을 인벤토리에서 작성하여 사용할 경우 무시할 수 있습니다.

 

[다양한 매개 변수들은 아래에서 볼 수 있습니다]

https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html#connecting-to-hosts-behavioral-inventory-parameters

 

How to build your inventory — Ansible Documentation

When declared inline with the host, INI values are interpreted as Python literal structures (strings, numbers, tuples, lists, dicts, booleans, None). Host lines accept multiple key=value parameters per line. Therefore they need a way to indicate that a spa

docs.ansible.com

 

 

 

Ansible Inventory에 대해서 알아 보았습니다 다음 번에는 다른 내용으로 찾아 뵙겠습니다~

'INFRA > Operation' 카테고리의 다른 글

그라파나 대시보드 및 패널 설정  (0) 2023.06.23
[Ansible] WordPress 설치하기  (0) 2023.06.23
배포 전략 - Rolling, Blue/Green, Canary  (0) 2023.06.08
[Ansible] Ansible Playbook이란  (1) 2023.06.08
CrossPlane에 대해  (0) 2023.06.07

댓글