- با استفاده از کلید no_log میتوان خروجی موفقیت آمیز یا خطاوار یک فرآیند را مدیریت و کنترل کرد.
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا دست نوشتهی test.sh بر روی تمام خادمهای تحت مدیریت اجرا شود.
- سپس دستور whoami بر روی تمام خادمهای تحت مدیریت اجرا شود.
- سپس در صورت بروز خطا در اجرای هر یک از فرآیندها، متن خطای مربوطه نمایش داده نشود.
- در نهایت در صورت بروز خطا در اجرای فرآیند اول، روند اجرای فرآیندها متوقف نشود.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
--- - name: PlayBook hosts: all gather_facts: no ignore_errors: yes <span style="color: #ff0000;"> no_log: yes</span> tasks: - name: run script script: /root/test.sh ignore_errors: yes - name: run command command: whoami ... |
- با استفاده از قابلیت ignore_errors مشخص کردیم که در صورت بروز هرگونه خطا، اجرای فرآیندهای بعدی متوقف نشود.
- در صورتی که مقدار کلید no_log بر روی no تنظیم شده باشد، در صورت بروز خطا، خطای رخ داده در قالب کلید msg نمایش داده میشود.
- اما در صورتی که مقدار کلید no_log بر روی yes تنظیم شده باشد، این خطا نمایش داده نخواهد شد.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- در صورتی که مقدار no_log بر روی no تنظیم شده باشد، خروجیای مشابه زیر دریافت خواهید کرد :
|
1 2 3 4 5 6 7 8 9 10 11 |
PLAY [PlayBook] ************************************************************************************************************************************** TASK [run script] ************************************************************************************************************************************ fatal: [172.16.0.247]: FAILED! => {"changed": false, "<span style="color: #ff0000;">msg</span>": "Could not find or access '/root/test.sh'"} ...ignoring TASK [run whoami command] **************************************************************************************************************************** changed: [172.16.0.247] PLAY RECAP ******************************************************************************************************************************************* 172.16.0.247 : ok=2 changed=1 unreachable=0 failed=0 |
- در صورتی که مقدار no_log بر روی yes تنظیم شده باشد، خروجیای مشابه زیر دریافت خواهید کرد :
|
1 2 3 4 5 6 7 8 9 10 11 |
PLAY [PlayBook] ************************************************************************************************************************************** TASK [run script] ************************************************************************************************************************************ fatal: [172.16.0.247]: FAILED! => {"<span style="color: #ff0000;">censored</span>": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false} ...ignoring TASK [run whoami command] *********************************************************************************************************************************** changed: [172.16.0.247] PLAY RECAP ******************************************************************************************************************************************* 172.16.0.247 : ok=2 changed=1 unreachable=0 failed=0 |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور مطالعهی بیشتر لینک زیر پیشنهاد میشود :
|
1 |
https://docs.ansible.com/ansible/latest/reference_appendices/logging.html |
- آزمایش شده بر روی Ansible نسخهی 2.5.1
- آزمایش شده بر روی سیستم عامل Ubuntu 18.04