본문 바로가기

클라우드/앤서블(Ansible)

앤서블 Ansible 정적 인벤토리

# 정적 인벤토리

관리노드의 목록을 가지고 있는 파일, 인벤토리 해당되는 호스트가 없으면 앤서블로 작업을 할 수 없다.

반드시 인벤토리가 존재 해야한다

/etc/ansible/hosts가 기본 인벤토리 파일 -> 직접 사용하지 않는다

인벤토리 파일의 위치는 설정파일이 지정한다

설정파일에서 지정한 위치가 아닌 인벤토리 파일 위치를 지정하고 싶다면 -i 옵션을 사용해  지정 , 인벤토리가 있는 디렉토리를 지정해도 된다.

 

직접 인벤토리 파일을 작성하는것을 정적 인벤토리라고 한다.

정적 인벤토리는 INI 파일이나 YAML 파일 형식으로 구성 할 수 있는데 일반적으로 INI 형식을 많이 쓴다.

INI 형식은 작성하기 쉽고 유연하다. 설정파일에 가장 많이 사용된다

 

 

# INI 파일의 형식

[  ] section : 앤서블에서는 그룹이라고 한다

패턴에 그룹을 지정하게 되면 그룹네 있는 모든 호스트에 작업이 실행된다

섹션이 다르면 변수값이 분리가 된다

값 string에 대한 value는 변수=value

*.example.com -> host

mail.example.com 그룹이 없는 host

 

 

사용자가 작성한 인벤토리가 잘 작동을 하는지 확인하는법

Ad-hop 커맨드에서 --list-hosts 사용

설정파일이 없다 -> 인벤토리 파일 지정을 해주지 않았기 때문이다 ( 기본파일은 아무것도 안들어있음 )

 

확인

all 기본으로 모든 호스트가 들어있는 그룹

ungrouped 그룹이 없는 호스트

 

 

# YAML 파일의 형식

야믈 형식으로 선언

그룹 밑에 그룹이 있을 경우 children 이라는 지시어를 사용한다

children 밑에는 그룹이 들어와야한다

 

 

 

사용자가 작성한 인벤토리가 잘 작동을 하는지 확인

 

 

ini파일과 yaml 파일 비교

 

 

 

 

그룹 밑에 그룹이 있을 경우 children 이라는 지시어를 사용한다

children 밑에는 그룹이 들어와야한다

host는 여러 그룹에 들어갈수있다

중첩그룹을 통해서 인벤토리를 단순화 시킨다

 

 

# 호스트의 범위 지정

www.example.com

= ww[1:50].example.com or www[1:50:2].example.com

 

 

# 인벤토리 확인

계층적인 형태로 인벤토리 파일을 보여준다

@ =그룹명

 

jason 형식으로 인벤토리를 보여준다

 

 

변수가 출력 된다 

 

더보기

   53  history
   54  ansible
   55  ssh 192.168.200.101
   56  vi a.ini
   57  clear
   58  cat a.vi
   59  cat a.ini
   60  ansible --list-hosts mail.example.com
   61  ansible --list-hosts -i a.ini mail.example.com
   62  ansible --list-hosts -i a.ini 192.168.56.51
   63  ansible --list-hosts -i a.ini webservers
   64  ansible --list-hosts -i a.ini all
   65  ansible --list-hosts -i a.ini ungrouped
   66  history
   67  vi a.yaml
   68  cat a.yaml
   69  ansible --list-hosts -i a.yaml all
   70  ansible --list-hosts -i a.yaml ungrouped
   71  ansible --list-hosts -i a.yaml webservers
   72  cat a.ini
   73  cat a.yaml
   74  vi a.ini
   75  cat a.ini
   76  ansible --list-hosts -i a.ini web
   77  clear
   78  ansible-inventory
   79  clear
   80  ansible-inventory -i a.ini --graph
   81  ansible-inventory -i a.ini --list
   82  ansible-inventory -i a.ini --host one.example.com
   83  history