3- Ansible inventory 작성하기
ansible의 inventory는 배포대상 서버정보를 구성하는 파일입니다.
rpm으로 설치할 경우 기본적으로 구성된 inventory는 /etc/ansible/hosts에서 작성할 수 있는데, playbook 작성에 따라
자체 inventory를 가질 수 있으니 참고만 해주세요.
- inventory에서 작성할 수 있는항목은 group, children, vars 를 자주 사용하는데요.
- 그룹명 web은 하위그룹으로 nginx, apache가 있다고 가정해보죠.
- 192.168.10.10, 192.168.10.15까지는 nginx를 설치할꺼고 192.168.100.10부터 192.168.100.15까지는 apache를 설치할꺼예요.
- playbook 코드도 그룹을 기준으로 설치할꺼예요.
- ansible 접속을 위한 계정은 ansible이고, ssh포트는 2022를 사용할꺼예요
이렇게 구성하기 위한 인벤토리는 다음값으로 설정이 가능합니다. 인벤토리는 /home/ansible/inventory 파일로 작성할게요
$ vi /home/ansible/inventory
[apache]
192.168.100.10
192.168.100.11
192.168.100.12
192.168.100.13
192.168.100.14
192.168.100.15
#혹은 이렇게 한줄 구성도 가능해요
192.168.100.[10:15]
[nginx]
192.168.10.10
192.168.10.11
192.168.10.12
192.168.10.13
192.168.10.14
192.168.10.15
#혹은 이렇게 한줄 구성도 가능해요
192.168.10.[10:15]
[web:children]
apache
nginx
[all:vars]
ansible_user=ansible
ansible_ssh_port=2022
인벤토리 구성이 잘 되었는지 한번 테스트 해볼까요?
$ ansible all -m ping -i /home/ansible/inventory
#특정 그룹 혹은 inventory에 구성된 정보를 넣으면 all 대신에 그룹명 혹은 서버ip를 기재하면 됩니다.
192.168.10.15 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.10.16 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.100.15 | SUCCESS => {
"changed": false,
"ping": "pong"
}
...