我想hosts: all在 Ansible 清單檔案中禁用。有時人們忘記修改 YAML 檔案中的 hosts 列,因此不小心將新配置推送到了內網中的所有主機。
我對 Ansible 很陌生,感謝任何幫助!
uj5u.com熱心網友回復:
假設您想保留hosts: all所有 playbook,并希望通過 option 限制運行時中的主機--limit。接下來,您要防止在所有主機上不受限制地運行 playbook。
問:如何禁用主機:全部在 Ansible 中?
答:Ansible 中沒有這樣的選項可以禁用所有組。all組是自動創建的,包含清單中的所有主機。
相反,在劇本中,您可以測驗劇本是否針對所有主機,例如
shell> cat playbook.yml
- hosts: all
tasks:
- assert:
that: ansible_play_hosts_all|length < groups.all|length
fail_msg: '[ERROR] All hosts not allowed.'
run_once: true
沒有東道主的限制,比賽不會繼續
shell> ansible-playbook playbook.yml
...
TASK [assert] **************************************************************
fatal: [host01]: FAILED! => changed=false
assertion: ansible_play_hosts_all|length < groups.all|length
evaluated_to: false
msg: '[ERROR] All hosts not allowed.'
執行
您不必修改所有劇本。相反,創建包裝器。例如,給定劇本
shell> cat playbook-509.yml
- hosts: all
tasks:
- debug:
msg: playbook-509 is running ...
創建包裝器
shell> cat playbook-509-wrapper.yml
- hosts: all
gather_facts: false
tasks:
- assert:
that: ansible_play_hosts_all|length < groups.all|length
fail_msg: '[ERROR] All hosts not allowed.'
run_once: true
- import_playbook: playbook-509.yml
只允許用戶運行包裝器。例如,如果用戶無限制地運行包裝器,則播放不會運行
shell> ansible-playbook playbook-509-wrapper.yml
...
TASK [assert] ***************************************************
fatal: [host01]: FAILED! => changed=false
assertion: ansible_play_hosts_all|length < groups.all|length
evaluated_to: false
msg: '[ERROR] All hosts not allowed.'
如果主機有限,該劇將運行
shell> ansible-playbook playbook-509-wrapper.yml --limit host01
PLAY [all] *****************************************************
TASK [assert] **************************************************
ok: [host01] => changed=false
msg: All assertions passed
PLAY [all] *****************************************************
TASK [debug] ***************************************************
ok: [host01] =>
msg: playbook-509 is running ...
您可以使用 Ansible 自動創建包裝器。
uj5u.com熱心網友回復:
這不可能。唯一可以存在且不屬于該all組的主機是隱式 localhost;任何其他主機都會自動成為 的一部分all,即使您沒有明確將其列為父組。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/420369.html
標籤:
