Usamos uma tarefa de falha simples para forçar o usuário a especificar a opção de limite Ansible , de modo que não executemos em todos os hosts por padrão / acidente.
A maneira mais fácil que encontrei é esta:
---
- 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
Agora devemos usar a opção -l
(= --limit
) quando executamos o manual, por exemplo
ansible-playbook playbook.yml -l www.example.com
Documentos de opção de limite :
Limite a um ou mais hosts Isso é necessário quando se deseja executar um manual contra um grupo de hosts, mas apenas contra um ou mais membros desse grupo.
Limite a um host
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit "host1"
Limite a vários hosts
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit "host1,host2"
Limite negado.
NOTA: As aspas simples DEVEM ser usadas para evitar a interpolação do bash.
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'all:!host1'
Limite ao grupo de acolhimento
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'group1'
hosts: "{{ variable_host | default('web')}}"