ansible_play_hosts в контексте jinja2 шаблонов
В контексте Jinja2-шаблонов в Ansible переменная ansible_play_hosts
полезна, когда вы хотите динамически работать с группой хостов, которые участвуют в плейбуке.
Использование ansible_play_hosts
в Jinja2:
Jinja2 позволяет динамически генерировать данные на основе переменных Ansible, таких как ansible_play_hosts
. Эта переменная может быть полезна, если вам нужно, например, сгенерировать конфигурацию для всех задействованных хостов, построить список хостов или распределить задачи между ними.
Пример 1: Перебор списка всех хостов в шаблоне
1 2 3 4 5 6 7 8 9 |
--- - name: Generate configuration for all hosts hosts: all tasks: - name: Create configuration file template: src: config.j2 dest: /etc/myapp/config.conf |
config.j2
может выглядеть так:
1 2 3 4 5 6 7 |
# This is a configuration file generated by Ansible [all_hosts] {% for host in ansible_play_hosts %} - {{ host }} {% endfor %} |
Пример 2: Фильтрация хостов по роли или IP-адресу
В Jinja2 можно использовать фильтры для работы с переменной ansible_play_hosts
, например, для выборки определённых хостов по роли или IP:
1 2 3 4 5 |
# List of web servers: {% for host in ansible_play_hosts if 'webserver' in group_names %} - {{ hostvars[host].inventory_hostname }} (IP: {{ hostvars[host].ansible_host }}) {% endfor %} |
В этом примере создается список хостов, которые принадлежат к группе webserver
, с указанием их имен и IP-адресов.
Ключевые моменты:
ansible_play_hosts
возвращает список хостов, участвующих в текущем плейбуке.- Можно использовать его в Jinja2 для динамического создания конфигураций, отчетов или других файлов, где важно упоминать все или часть хостов.
- В сочетании с
hostvars
,group_names
и другими переменными можно получать дополнительные данные о каждом хосте.
Таким образом, ansible_play_hosts
— это мощный инструмент для динамического управления хостами в шаблонах Ansible через Jinja2, который может пригодиться для создания гибких конфигураций и автоматизации.
Recommended Posts
Плейбук Ansible по развертыванию haproxy
15.02.2024