본문 바로가기
Hello World/IaC

[Ansible/AWX] AWX inventory 에 host 자동 추가

by Run DaramG 2021. 3. 24.

AWX를 사용하다보니 inventory 등록할때 host를 하나씩밖에 등록하는 것이 번거롭다.

여러 방법으로 host 정보를 gathering 할 수 있는데, (SOURCE설정, inventory script) 나는 inventory 도 git에 등록하여 사용하고 있기떄문에 git의 host파일을 불러와 자동으로 inventory 를 구성하도록 했다.

 

우선 새로운 inventory 를 추가한다

 

SOURCES  탭에들어가 신규 SOURCE를 추가한다. 이때 SOURCE 는 Sourced from a Project 로 선택하면된다.

Inventory file 을 git에 update 할때마다 AWX의 inventory 도 sync 를 맞추기 위해 UPDATE OPTIONS 의 OVERWRITE 와 OVERWRITE VARIABLES 를 체크해준다. 이후 git 에 inventory파일 업데이트 되면 해댱 SOURCE SYNC 를 눌러서 동기화 해주면 된다.

 

약간의 시간이 소요되고 project 에 등록된 inventory 파일을 읽어서 자동으로 AWX Inventory에 추가해준다. 이때 문법 오류가 있으면 syntax error로 Fail 하는데, 대표적으로 발생할 수 있는 오류는 아래와 같이 특수문자가 들어간 경우 따옴표로 처리해주어야 한다.

 

ERROR! Syntax Error while loading YAML.

could not determine a constructor for the tag '!pass123'

...

but may be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

---

ansible_ssh_pass: !pass123    # '!pass123' 으로 변경하면 해결된다.

^ here

 

 

 

댓글