Chúng tôi sử dụng một nhiệm vụ thất bại đơn giản để buộc người dùng chỉ định tùy chọn giới hạn Ansible , để chúng tôi không thực thi trên tất cả các máy chủ theo mặc định / tai nạn.
Cách dễ nhất mà tôi tìm thấy là:
---
- 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
Bây giờ chúng ta phải sử dụng -l
(= --limit
option) khi chạy playbook, ví dụ:
ansible-playbook playbook.yml -l www.example.com
Giới hạn tài liệu tùy chọn :
Giới hạn đối với một hoặc nhiều máy chủ Điều này là bắt buộc khi một người muốn chạy playbook với một nhóm máy chủ, nhưng chỉ với một hoặc nhiều thành viên của nhóm đó.
Giới hạn cho một máy chủ
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit "host1"
Giới hạn cho nhiều máy chủ
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit "host1,host2"
Mức giới hạn.
LƯU Ý: PHẢI sử dụng các dấu nháy đơn để ngăn nội suy bash.
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'all:!host1'
Giới hạn cho nhóm máy chủ
ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'group1'
hosts: "{{ variable_host | default('web')}}"