Как получить доступ к списку хостов из указанной группы в Ansible
В 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