Kullanıcıyı Ansible limit seçeneğini belirtmeye zorlamak için basit bir başarısızlık görevi kullanırız , böylece varsayılan / kaza olarak tüm ana bilgisayarlarda çalıştırmayız.
Bulduğum en kolay yol şuydu:
---
- 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
Şimdi başucu kitabını çalıştırdığımızda -l
(= --limit
seçeneğini) kullanmalıyız, örneğin
ansible-playbook playbook.yml -l www.example.com
Seçenek belgelerini sınırla :
Bir veya daha fazla ana bilgisayarla sınırlayın Bu, bir oyun kitabını bir ana bilgisayar grubuna karşı, ancak yalnızca o grubun bir veya daha fazla üyesine karşı çalıştırmak istediğinde gereklidir.
Bir ana bilgisayarla sınırlayın
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit "host1"
Birden çok ana bilgisayarla sınırlayın
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit "host1,host2"
Olumsuz sınır.
NOT: Bash enterpolasyonunu önlemek için tek tırnak işaretleri KULLANILMALIDIR.
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'all:!host1'
Ev sahibi grubuyla sınırla
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'group1'
hosts: "{{ variable_host | default('web')}}"