Хороший пример мульти-вендора, мульти-местоположения и мульти-типа инвентаря для Ansible
Интересно, есть ли хороший пример мульти-вендора, мульти-локации и мульти-типов инвентаризации для автоматизации сети с Ansible.
у нас есть гетерогенная сеть, которая включает в себя межсетевые экраны Juniper, коммутаторы Cisco, межсетевые экраны Linux и VPN-серверы.
Идея автоматизации - иметь единый источник правдивости для всей сетевой информации, такой как политики брандмауэра, настройки snmp, управление доступом на основе ssh, классы QoS, цели Syslog и т. д. и т. д.
К сожалению, официальное руководство Ansible не предоставляет советы для такого многомерного инвентаря.
Я пытался следовать https://www.digitalocean.com/community/tutorials/how-to-manage-multistage-environments-with-ansible учебник, но посчитали это довольно сложным, и в качестве дополнительной проблемы они рекомендовали использовать символические ссылки, которые не полностью поддерживаются в репозиториях Git.
Моя текущая структура инвентаря выглядит следующим образом:
$ tree vendor/
vendor/
├── 000_all_vendor_vars
├── ios
│ ├── group_vars
│ │ ├── all
│ │ │ ├── 000_all_vendor_vars -> ../../../000_all_vendor_vars
│ │ │ └── vendor_specific
│ │ └── switch
│ └── hosts
├── junos
│ ├── group_vars
│ │ ├── all
│ │ │ ├── 000_all_vendor_vars -> ../../../000_all_vendor_vars
│ │ │ └── vendor_specific
│ │ ├── firewall
│ │ └── router
│ └── hosts
└── linux
├── group_vars
│ ├── all
│ │ ├── 000_all_vendor_vars -> ../../../000_all_vendor_vars
│ │ └── vendor_specific
│ └── firewall
└── hosts
И это даже не включая еще слой локации.
Итак, любые советы / примеры приветствуются.