Cloud Engineering/Ansible

[Ansible] Inventory (인벤토리) 란? (1) - 정적 인벤토리

minjiwoo 2023. 2. 27. 17:53
728x90

Inventory 란

  • Ansible이 관리하는 호스트들의 목록에 대해 설정하는 파일이다. 호스트들을 그룹 및 중첩 그룹으로 묶어서 관리할 수 있다. 
  • 인벤토리 파일은 INI , YAML 형식으로 정의할 수 있다. 
  • Default 인벤토리 파일 위치 : /etc/ansible/hosts
  • 인벤토리를 지정하지 않은 경우 Default 인벤토리에서 참조된다. 

 

Inventory 조회하기

new-inventory 파일 예시 

ansi-master1 # control host
[group1] # 그룹명
ansi-node1 # 해당 호스트
ansi-node2

[group2] 
ansi-node3

[total-group:children]
group1
group2

중첩 그룹을 지정할 때는 [중첩그룹이름:children] 이라고 써주어야 한다. 

 

Inventory 파일 패턴으로 호스트 등록하기 

inventory 파일 패턴으로 지정하기 

web[01:10] # web01, web02 , … web10

web[a:z] # weba, webb, webc .. webz 

web[01:10:2] # web01, web03, .. web09

 

인벤토리 파일 조회하기 

명령어 형식은 다음과 같다. 패턴을 지정할 수 있다. 

$ ansible [PATTERN] --list-hosts [-i] [FILE]

 

-i 옵션을 붙이면 인벤토리 파일을 지정할 수 있다. 지정하지 않으면 기본 인벤토리 파일이 조회된다. 

$ ansible all --list-host -i INVENTORY_FILE
$ ansible all --list-host -i new-inventory

 

$ ansible total-group --list-host -i new-inventory

 

패턴 종류 

  • 합집합 group1:group2
  • 교집합 group1:\&group2
  • 차집합 group1:!group2
  • 모든 호스트 all 또는 *
728x90