Интересно, есть ли хороший пример инвентаризации нескольких поставщиков, нескольких местоположений и нескольких типов для автоматизации сети с Ansible.
т.е. у нас есть гетерогенная сеть, которая включает межсетевые экраны Juniper, Ciscoкоммутаторы, а также брандмауэры и VPN-серверы Linux.
идея автоматизации - иметь единый источник правды для всей сетевой информации, такой как политики брандмауэра, настройки snmp, управление доступом на основе ssh, классы QoS, цели Syslogи т. д. и т. п.
К сожалению, официальное руководство Ansible не дает советов для такого многомерного инвентаря.
Я пытался следовать https://www.digitalocean.com/community/tutorials/how-to-manage-multistage-environments-with-ansible#ansible-recommended-strategy-using-groups-and-multiple-inventories учебник, но он оказался довольно сложным, и в качестве дополнительной проблемы они советуют использовать символические ссылки, которые не полностью поддерживаются в репозиториях 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
И это даже не включая еще слой локации.
Итак, любые советы / примерыприветствуются.