Wir verwenden eine einfache Fail- Task, um den Benutzer zu zwingen, die Option Ansible Limit anzugeben , damit wir nicht standardmäßig / versehentlich auf allen Hosts ausgeführt werden.
Der einfachste Weg, den ich gefunden habe, ist folgender:
---
- name: Force limit
# 'all' is okay here, because the fail task will force the user to specify a limit on the command line, using -l or --limit
hosts: 'all'
tasks:
- name: checking limit arg
fail:
msg: "you must use -l or --limit - when you really want to use all hosts, use -l 'all'"
when: ansible_limit is not defined
run_once: true
Jetzt müssen wir die Option -l
(= --limit
) verwenden, wenn wir das Playbook ausführen, z
ansible-playbook playbook.yml -l www.example.com
Begrenzungsoptionsdokumente :
Beschränkung auf einen oder mehrere Hosts Dies ist erforderlich, wenn ein Playbook gegen eine Hostgruppe ausgeführt werden soll, jedoch nur gegen ein oder mehrere Mitglieder dieser Gruppe.
Beschränken Sie sich auf einen Host
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit "host1"
Beschränken Sie sich auf mehrere Hosts
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit "host1,host2"
Negiertes Limit.
HINWEIS: Um die Bash-Interpolation zu verhindern, MÜSSEN einfache Anführungszeichen verwendet werden.
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'all:!host1'
Beschränken Sie sich auf die Hostgruppe
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'group1'
hosts: "{{ variable_host | default('web')}}"