https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#intro-inventory
기본 인벤토리 파일: /etc/ansible/hosts
사용하지 X
기본 위치에 있는 인벤토리 파일 아니면: -i
옵션 사용
포멧: ini, yaml
ini 형식의 예
key=value
[Section]
key=value
key
mail.example.com
[webservers]
foo.example.com
bar.example.com
three.example.com
[dbservers]
one.example.com
two.example.com
three.example.com
[ ]
: 인벤토리 그룹
하나의 노드는 하나의 그룹에만 속해야 한다: False
all:
hosts:
mail.example.com:
children:
webservers:
hosts:
foo.example.com:
bar.example.com:
dbservers:
hosts:
one.example.com:
two.example.com:
three.example.com:
기본 그룹
주의
인벤토리 생성 원칙
간결하게...
그룹에 호스트를 분류
호스의 범위
[webservers]
www[01:50].example.com
192.168.100.[10:19]
인벤토리 변수
[webservers]
www[01:50].example.com A=100 B=200
192.168.100.[10:19]
인벤토리 그룹 변수
[atlanta]
host1
host2
[atlanta:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com
중첩 그룹
[atlanta]
host1
host2
[raleigh]
host2
host3
[southeast:children]
atlanta
raleigh
[usa:children]
southeast
생성한 인벤토리 파일 계층 구조 확인
ansible-inventory -i <INVENTORY_FILE> --graph
JSON 형식 및 호스트/그룹 변수
ansible-inventory -i <INVENTORY_FILE> --list
호스트에 설정된 변수 확인
ansible-inventory -i <INVENTORY_FILE> --host <HOST>
호스트 매칭 확인
ansible <HOST_PATTERN> -i <INVENTORY_FILE> --list-hosts
https://docs.ansible.com/ansible/latest/reference_appendices/config.html
설정파일 위치
1. ANSIBLE_CONFIG
(environment variable if set)
touch /tmp/ans.cfg
export ANSIBLE_CONFIG=/tmp/ans.cfg
ansible --version
unset ANSIBLE_CONFIG
ansible --version
ansible.cfg
(현재 작업 디렉토리)~/.ansible.cfg
(홈디렉토리)/etc/ansible/ansible.cfg
: 기본 설정 파일/etc/sudoers
%wheel ALL=(ALL) ALL
/etc/sudoers.d/vagrant
%vagrant ALL=(ALL) NOPASSWD: ALL
ansible의 기본 인증 방법: SSH 키 인증
[defaults]
remote_user=<SSH_USER>
ask_pass=<True|False>
host_key_checking=<True|False>
[privilege_escalation]
become=<True|False>
become_ask_pass=<True|False>
become_method=<sudo|su>
become_user=<SUDO_USER>