เราใช้งานที่ล้มเหลวง่ายๆเพื่อบังคับให้ผู้ใช้ระบุตัวเลือกขีด จำกัด Ansible เพื่อที่เราจะไม่ดำเนินการกับโฮสต์ทั้งหมดโดยค่าเริ่มต้น / อุบัติเหตุ
วิธีที่ง่ายที่สุดที่ฉันพบคือ:
---
- 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
ตอนนี้เราต้องใช้-l
(= --limit
ตัวเลือก) เมื่อเราเรียกใช้ playbook เช่น
ansible-playbook playbook.yml -l www.example.com
เอกสารตัวเลือก จำกัด :
จำกัด ไว้ที่โฮสต์อย่างน้อยหนึ่งโฮสต์สิ่งนี้จำเป็นเมื่อต้องการเรียกใช้ playbook กับกลุ่มโฮสต์ แต่เฉพาะกับสมาชิกหนึ่งคนหรือมากกว่าของกลุ่มนั้น
จำกัด ไว้ที่หนึ่งโฮสต์
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit "host1"
จำกัด เฉพาะหลายโฮสต์
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit "host1,host2"
ขีด จำกัด เชิงลบ
หมายเหตุ: ต้องใช้เครื่องหมายคำพูดเดี่ยวเพื่อป้องกันการแก้ไข bash
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'all:!host1'
จำกัด เฉพาะกลุ่มโฮสต์
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'group1'
hosts: "{{ variable_host | default('web')}}"