✔️ 플레이북 실행
yaml syntax
문법 체크
ansible-playbook wordpress.yaml --syntax-check
문법에 맞게 작성했는지를 알려주나 정상 동작을 보장하지는 않는다.
value 값이 옳은지 아닌지를 체크하지는 않는다.
완벽하게 오류 부분을 찾지 못하기 때문에 오류가 발생한 주변 영역도 봐야 한다.
예를들어 name → mame로 바꿔도 오류를 찾지 못한다.
syntax 체크 시 오류가 발생하지 않았으면 별다른 메세지가 뜨지 않는다.
[vagrant@controller ~]$ ansible-playbook wordpress.yaml --syntax-check
playbook: wordpress.yaml
check
시뮬레이션
ansible-playbook wordpress.yaml --check
ansible-playbook wordpress.yaml -C
check는 시뮬레이션을 한다.
실제 시스템에 변경 사항을 만들지는 않는다.
시뮬레이션 자체가 작동한다고 해서 실제 동작이 정상적으로 작동함을 보장하지는 않는다.
반대로 시뮬레이션이 제대로 동작하지 않아도 실제로는 잘 동작할 수도 있다.
TASK [unarchive] ***************************************************************************************************
fatal: [192.168.100.11]: FAILED! => {"changed": false, "msg": "Source '/home/vagrant/wordpress-5.9.3.tar.gz' does not exist"}
PLAY RECAP *********************************************************************************************************
192.168.100.11 : ok=8 changed=3 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
diff
텍스트의 변경 사항 확인
ansible-playbook wordpress.yaml --diff
ansible-playbook wordpress.yaml -b --diff
diff 사용법
echo hello > a
echo 'hello world' > b
diff a b
[vagrant@controller ~]$ cat a
hello
korea
japan
[vagrant@controller ~]$ cat b
hello world
korea
[vagrant@controller 01_variable]$ diff a b
1c1
< hello
---
> hello world
3d2
< japan
diff wp-config-sample.php wp-config.php
실행할 시스템 제한
inventory.ini
192.168.100.11
192.168.100.12
[wp]
192.168.100.11
192.168.100.12
wordpress.yaml 파일 확인
head wordpress.yaml
어떤 호스트에 매칭되는지를 확인한다.
ansible-playbook wordpress.yaml --list-hosts
check 모드로 시뮬레이션을 돌린다.
ansible-playbook wordpress.yaml -b --check
PLAY [wp] ***************************************************************************************************************************
TASK [Gathering Facts] **************************************************************************************************************
ok: [192.168.100.11]
ok: [192.168.100.12]
TASK [yum] **************************************************************************************************************************
ok: [192.168.100.11]
ok: [192.168.100.12]
TASK [yum_repository] ***************************************************************************************************************
ok: [192.168.100.11]
ok: [192.168.100.12]
TASK [yum_repository] ***************************************************************************************************************
ok: [192.168.100.11]
ok: [192.168.100.12]
실행 결과를 확인해보면 하나의 작업이 2개의 호스트에서 실행되며 두 호스트에서 작업을 끝낸 후 다음 작업으로 넘어간다.
만약 작업이 10개 있으면 첫번째 작업을 2대의 시스템에서 실행 두번째 작업을 2대의 시스템에서 실행 열번째 작업을 2대의 시스템에서 실행하는 순서로 흘러갈 것이다.
여기서 알아야하는 것은 만약 192.168.100.12에서 오류가 발생하면 더이상 해당 호스트에 대해 후속 작업을 진행하지 않는다는 것이다.
task 작업이 5번까지 있다고 하고 호스트 A와 B가 있다고 하면 A, B에서 동시에 T1 작업을 진행한다.
A만 작업이 끝나고 B에는 작업이 끝나지 않았다면 A만 다음 작업으로 넘어가지 않는다.
즉, 모든 호스트가 T1 작업이 끝나야만 T2 작업으로 넘어간다.
만약 호스트가 100대가 있다면 100대의 호스트 모두가 T1 작업이 끝나야 T2로 넘어갈 수 있다.
여기서 작업이 끝난다는 말은 작업이 성공적으로 실행 완료된 것만을 의미하는 것이 아니다.
만약 B 시스템에 오류가 난다면 더 이상 B 시스템은 후속 작업을 진행하지 않는다.
다시 정리해보면, 모든 호스트가 T1 작업을 마쳐야 다음 작업으로 넘어간다.
작업을 실행하다가 어떤 특정 시스템만 일부분에서 오류가 났다고 가정하면,
성공적으로 작업을 마친 시스템에도 다시 동일한 작업을 수행하는 것은 시간적으로 매우 비효율적이다.
그래서 실행할 시스템을 제한적으로 작업을 진행할 수 있다.
--limit 을 사용하여 192.168.100.12에만 작업을 진행한다.
ansible-playbook wordpress.yaml --limit 192.168.100.12
playbook 파일 분석하기
적용될 호스트 목록
작업이 실행될 호스트 목록을 출력한다.
ansible-playbook wordpress.yaml --list-hosts
플레이북의 작업 목록
작업 시 여러개의 yaml 파일의 관계를 이해할 때 사용한다.
여러개의 yaml 파일을 사용할 때 유용하다.
ansible-playbook wordpress.yaml --list-tasks
플레이북의 태그 목록
ansible-playbook wordpress.yaml --list-tags
'DevOps > Ansible' 카테고리의 다른 글
[Ansible] 반복문(Loops) (0) | 2022.04.19 |
---|---|
[Ansible] 변수(Variables) (0) | 2022.04.19 |
[Ansible] Ad-hoc 명령어로만 Wordpress 배포하기 (0) | 2022.04.15 |
[Ansible] module, ad-hoc, playbook, yaml 포맷 (0) | 2022.04.15 |
[Ansible] 정적 인벤토리 (0) | 2022.04.15 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!