Ansible 정리 - Playbook
- 1 minutes read - 181 wordsPlaybooks
Ansible playbook
은 YAML
파일 형식으로 되어있음 (docker-compose 처럼 생김)
-
name: Play 1
hosts: localhost # inventory.txt 파일에 정의 되어있어야 한다. 만약 그룹이름이 들어가면 그 하위에 있는 모든 서버들에서 실행됨
tasks:
- name: Execute command 'date' # 여기 리스트 부분은 순서에 따라 동작한다 (대시로 시작하는 부분은 list)
command: date # 이 부분을 ansible module이라고 불림
- name: Execute script
script: test_script.sh # 이 부분을 ansible module이라고 불림
-
name: Play 2
hosts: localhost
tasks:
- name: Install web service
yum: # 이 부분을 ansible module이라고 불림
name: httpd
state: present
- name: Start web server
services: # 이 부분을 ansible module이라고 불림
name: httpd
state: started
위에서 생성된 yml 파일을 아래 명령으로 실행한다
ansible-playbook playbook-pingtest.yml -i inventory.txt
정상적으로 실행이 되었다면 아래와 같은 결과를 볼 수 있다.
싱글 커맨드 날리기
docker
와 비교해보면 아래 명령을 직접 치는 것은 docker run ...
처럼 명령을 직접 실행하는 것이고,
playbook
은 docker-compose
로 설정 값을 파일에 지정해놓고 실행하는 거라고 생각하면 쉬움
결과적으로 ping
같이 테스트 목적이 아니라면 playbook
을 더 선호하게 될 것 같다.
ansible <host> -a <command>
ansible all -a "/sbin/reboot"
ansible <host> -m <module>
ansible target1 -m ping