Как получить доступ к списку хостов из указанной группы в Ansible
groups
. Это специальная переменная, которая содержит все группы и их соответствующие хосты. Для доступа к хостам в группе вы можете обратиться к переменной как к словарю.
Пример:
Допустим, у вас есть инвентарь с группамиwebservers
и dbservers
. Чтобы получить список всех хостов из группы webservers
в вашем плейбуке, можно сделать следующее:
1 2 3 4 5 6 |
- hosts: localhost tasks: - name: Show all hosts in group webservers debug: msg: "{{ groups['webservers'] }}" |
webservers
.
Доступ к хостам в Jinja2 шаблонах:
В Jinja2 шаблонах вы также можете использовать переменнуюgroups
для получения списка хостов:
1 2 3 4 |
{% for host in groups['webservers'] %} - {{ host }} {% endfor %} |
webservers
и выведет их.
Фильтрация по группам:
Если нужно выполнить задачу только на некоторых хостах из конкретной группы, можно использовать переменнуюgroups
в условии:
1 2 3 4 5 6 7 |
- hosts: all tasks: - name: Do something on hosts in webservers group debug: msg: "This host is in webservers group" when: inventory_hostname in groups['webservers'] |
groups
позволяет легко получить список хостов из нужной группы и использовать его в задачах или шаблонах.
Recommended Posts
Плейбук Ansible по развертыванию haproxy
15.02.2024