पढ़ने से बाहर निकलें कोड के ansible श के अंदर फाइल

0

सवाल

मैं एक खोल स्क्रिप्ट से चलाता है, जो एक ansible-playbook आदेश कहना ansible-playbook install.yml.
यह बिल्कुल ठीक काम करता है.

अब खोल के अंदर स्क्रिप्ट पर आधारित है, चाहे Ansible आदेश सफल रहा था या विफलता, मैं कुछ करने की जरूरत है.
वहाँ एक तरीका है पर कब्जा करने के लिए बाहर निकलें कोड की एक Ansible आदेश इतना है कि मैं का उपयोग कर सकते हैं यह आगे कदम के लिए खोल के अंदर स्क्रिप्ट?

किसी भी वैकल्पिक दृष्टिकोण भी हो सकता है वास्तव में मददगार ।

ansible ansible-2.x sh shell
2021-11-24 06:46:52
1

सबसे अच्छा जवाब

0

क्यू: "कमांड ansible-playbook हमेशा रिटर्न शून्य यहां तक कि अगर ansible कार्यों में विफल."

एक: वापसी कोड के 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

अन्य कलाकृतियों और उदाहरण का उपयोग करने के लिए कैसे में उन्हें स्क्रिप्ट.

2021-11-24 10:29:05

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................