Я использую ansible для отправки файлов конфигурации .set на устройства с ОС Junos с помощью модуля junos_install_config. Я хочу отправлять определенные файлы конкретным хостам на основе имен.
например. Я хочу отправить файл "vMX1.set" на хост vMX1, файл "vMX2.set" на хост vMX2 и т. Д.
В данный момент я делаю это так:
---
name: Configure Junos Devices
hosts: all
roles:
- Juniper.junos
connection: local
gather_facts: no
tasks:
- name: Send to Device 1
when: ansible_hostname == vMX1
junos_install_config:
host={{ inventory_hostname }}
file=/home/usr/resources/vMX1.set
overwrite=false
- name: Send to Device 2
when: ansible_hostname == vMX2
junos_install_config:
host={{ inventory_hostname }}
file=/home/usr/resources/vMX2.set
overwrite=false
Это работает, однако, очень много времени и не очень логично. Например, если у меня 50 файлов конфигурации и 50 устройств, мне нужно написать 50 разных задач. Есть ли способ автоматизировать это так, чтобы книга воспроизведения проверила имя задачи и присвоила файлу соответствующее имя?
Файл хоста выглядит так
[vMXrouters]
vMX1 ansible_ssh_host=10.249.89.22
vMX2 ansible_ssh_host=10.249.89.190