Я использую 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 разных задач. Есть ли способ автоматизировать это, чтобы playbook проверял имя задачи и присваивал файлу соответствующее имя?
Хост-файл выглядит так
[vMXrouters]
vMX1 ansible_ssh_host=10.249.89.22
vMX2 ansible_ssh_host=10.249.89.190