IT/CLOUD(AWS,Azure,GCP,Docker)

[Ansible] 4 . Ansible Playbook 에서 hosts 인벤토리 파일 지정

알콩달콩아빠 2023. 11. 19. 20:35
728x90
반응형

nsible-playbook 지정 시 Default hosts 파일 경로는 /etc/ansible/hosts 이다.

 
1
[test@server1 ~]$ cat /etc/ansible/hosts 
2
# This is the default ansible 'hosts' file.
3
#
4
# It should live in /etc/ansible/hosts
5
#
6
#   - Comments begin with the '#' character
7
#   - Blank lines are ignored
8
#   - Groups of hosts are delimited by [header] elements
9
#   - You can enter hostnames or ip addresses
10
#   - A hostname/ip can be a member of multiple groups 

해당 /etc/ansible/hosts 파일은 /etc/ 폴더 내에 존재하며 root 권한이 있어야만 작성 가능하다.

ansible playbook의 배포와 자유도를 높이기 위해서는 해당 파일에 종속되지 않는 인벤토리(Hosts) 파일이 필요하다.

ansible-playbook 실행 시 -i 옵션으로 작업 대상이 저장된 Inventory 파일의 지정이 가능하다.

 
1
[server@server1 ~]$ ansible-playbook -h | grep ' -i '
2
  -i INVENTORY, --inventory=INVENTORY, --inventory-file=INVENTORY

/etc/ansible/hosts 파일 내 hosts 정보를 삭제 후 -i 옵션 없이 ansible-playbook를 실행하면 "no hosts matched" 에러가 발생한다.

 
1
[test@server1 ~]$ ansible-playbook test.yml -k
2
SSH password: 
3
 [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
4
5
 [WARNING]: Could not match supplied host pattern, ignoring: test
6
7
8
PLAY [test] *****************************************************************************************************************************************************************************************************************************
9
skipping: no hosts matched
10
11
PLAY RECAP ******************************************************************************************************************************************************************************************************************************

-i 옵션을 설정 시 이전과 같이 정상적으로 실행되는 것을 확인할 수 있다.

 
1

[test@server1 ~]$ cat hosts
[test]
server2
server3
server4

[test@server1 ~]$ ansible-playbook test.yml -k -i hosts
2
SSH password: 
3
4
PLAY [test] *****************************************************************************************************************************************************************************************************************************
5
6
TASK [1. Test connection] ***************************************************************************************************************************************************************************************************************
7
 [WARNING]: sftp transfer mechanism failed on [server3]. Use ANSIBLE_DEBUG=1 to see detailed information
8
9
 [WARNING]: sftp transfer mechanism failed on [server4]. Use ANSIBLE_DEBUG=1 to see detailed information
10
11
 [WARNING]: sftp transfer mechanism failed on [server2]. Use ANSIBLE_DEBUG=1 to see detailed information
12
13
ok: [server3]
14
ok: [server4]
15
ok: [server2]
16
17
PLAY RECAP ******************************************************************************************************************************************************************************************************************************
18
server2                    : ok=1    changed=0    unreachable=0    failed=0   
19
server3                    : ok=1    changed=0    unreachable=0    failed=0   
20
server4                    : ok=1    changed=0    unreachable=0    failed=0   

 

 

 

출처: https://november11tech.tistory.com/109 [Mr.november11:티스토리]

728x90
반응형