나는 쉘 스크립트로 트리거 ansible-playbook
명령을 말 ansible-playbook install.yml
.
이는 완벽하게 작동합니다.
이제 내부 쉘 스크립트는지 여부에 따라 Ansible 명령을 성공적이었거나 실패를,나는 뭔가를 해야 합니다.
는 방법이 있을 캡처하는 종료 코드의 Ansible 명령할 수 있도록 그것을 이용한 단계를 안에는 셸 스크립트를 사용해야 할까요?
어떤 다른 방법은 것도 정말 도움이 됩니다.
나는 쉘 스크립트로 트리거 ansible-playbook
명령을 말 ansible-playbook install.yml
.
이는 완벽하게 작동합니다.
이제 내부 쉘 스크립트는지 여부에 따라 Ansible 명령을 성공적이었거나 실패를,나는 뭔가를 해야 합니다.
는 방법이 있을 캡처하는 종료 코드의 Ansible 명령할 수 있도록 그것을 이용한 단계를 안에는 셸 스크립트를 사용해야 할까요?
어떤 다른 방법은 것도 정말 도움이 됩니다.
Q: "명령 ansible-각본상이 반환하는 경우에도 ansible 작업에 실패했습니다."
A:반환 코드의 ansible-playbook 하지 않습 보고서의 상태를 호스트. 예를 들어,인벤토리를 만들고 각본
shell> cat project/inventory/hosts
host1
host2
host3
shell> cat project/test.yml
- hosts: host1,host2,host3
gather_facts: false
tasks:
- fail:
when: '[true, false] | random'
반환된 코드입 0 는 사실에도 불구하고 하나의 호스트 실패
shell> ansible-playbook -i project/inventory/hosts project/test.yml
PLAY [host1,host2,host3] **************************************************
TASK [fail] ***************************************************************
fatal: [host1]: FAILED! => changed=false
msg: Failed as requested from task
skipping: [host2]
skipping: [host3]
PLAY RECAP ****************************************************************
host1 : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
host2 : ok=0 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
host3 : ok=0 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
shell> echo $?
0
사용 ansible-러너 를 분석하려면의 상태를 playbook. 예를 들어
shell> ansible-runner run project -p test.yml -i 001
PLAY [host1,host2,host3] *******************************************************
TASK [fail] ********************************************************************
skipping: [host2]
fatal: [host1]: FAILED! => {"changed": false, "msg": "Failed as requested from task"}
skipping: [host3]
PLAY RECAP *********************************************************************
host1: ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
host2: ok=0 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
host3: ok=0 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
shell> echo $?
2
디렉터리를 만든 유물/001
shell> tree project/artifacts/001/
project/artifacts/001/
├── command
├── fact_cache
├── job_events
│ ├── 10-0e67d8d4-0e4a-4997-b3ab-3d0189534132.json
│ ├── 10-4dfea3b2-baf6-46a8-b4ab-e22af5a8d55b.json
│ ├── 1-6afdcfe5-734e-4c4d-b00a-aacd6367c758.json
│ ├── 1-832947cc-0af6-47bc-a15c-fb71b565a9d3.json
│ ├── 2-9d4346a9-cd36-4f14-9c9f-000000000008.json
│ ├── 2-9d4346a9-cd36-78bf-89f1-000000000008.json
│ ├── 3-9d4346a9-cd36-4f14-9c9f-00000000000a.json
│ ├── 3-9d4346a9-cd36-78bf-89f1-00000000000a.json
│ ├── 4-0421a1df-52c1-4c8a-89af-25dff1146b5d.json
│ ├── 4-dad41025-1974-4cd0-829d-2cab9a7ac541.json
│ ├── 5-36628db6-cf46-4ccc-bb67-e510bfa03d85.json
│ ├── 5-61adde59-937d-40b6-8a2d-72c2bdc69a68.json
│ ├── 6-1aad67ba-7cc0-438b-9926-6861359ecedd.json
│ ├── 6-9b9272e1-f332-45eb-836b-453595e5af4a.json
│ ├── 7-41959751-8bd8-4da2-8053-5f61151dc803.json
│ ├── 7-ed0c5919-ea3c-4d41-8690-7877c9639dcf.json
│ ├── 8-93f5146b-1164-45d6-ad3d-38c356cab19c.json
│ ├── 8-cc90147f-eca0-46ed-b3f9-fd2938dab5ce.json
│ ├── 9-274c9f8f-384e-426d-8832-4625cd75f945.json
│ └── 9-287f4ffa-4073-45f4-9bc5-e91837b4abbb.json
├── rc
├── status
├── stderr
└── stdout
2 directories, 25 files
상태이 실패 반환 코드가 2 개 있는 경우 호스트의 실패
shell> cat project/artifacts/001/status
failed
shell> cat project/artifacts/001/rc
2
다른 유물과 예 의에서 사용하는 방법 스크립트가 있습니다.