Мне нужна помощь. Я хочу развернуть некоторые файлы с некоторыми изменениями. Политика развертывания такова, что в зависимости от сети, к которой принадлежит сервер, он будет развертывать некоторые файлы или другие.
Моя идея состоит в том, чтобы создать .yml (Определение сетей) с именем сетей. (vars_file)
Например:
Работа: 192.168.2.XXX Тип файла отправки A
Офис: 192.168.3.XXX
Мой главный Идея заключалась в том, чтобы использовать условия в Ansible.
Когда сервер имеет интерфейс, который принадлежит 192.168.2.XXX, он отправляет текстовый файл, например.
Когда он принадлежит 192.168 .3.XXX отправляет аудиофайл
Варианты файлов:
---
vlan:
- networkname: Work
netname: 192.168.3.0
netmask: 255.255.255.0
netface: "{{vars.ansible_facts[ansible_interfaces]}}"
Playbook
- name: Test move
hosts: all
vars_files:
- vlan.yml
tasks:
- name: Copy
copy:
src: "/tmp/file.mp3"
dest: "/opt/tmp/file.mp3"
when:
- (hostvars[inventory_hostname]['ansible_%s' % item]|default({})).get('ipv4', {}).get('address') = {{item.netname}}
with_items:
- "{{vlan.netface}}"
Первый сбой:
"FAILED! => {"msg": "dict object has no element [u'lo', u'ens192', u'ens160']"}"