Интересно, что было бы хорошим решением для управления средой с комбинацией динамических и статических хостов, варов и групп.
Я думаю о комбинации физических хостов в центре обработки данных с комбинацией конкретных задач (физический узел базы данных) плюс хосты Proxmox, управляющие некоторыми динамическими виртуальными машинами, вместе с некоторыми облачными провайдерами для управления новыми виртуальными машинами в некоторых ситуациях, когда физическая производительность недостаточно (внешний вид оценки производительности).
В таком случае - хорошая практика - динамическая инвентаризация. Конечно, есть плагины для AWS, Hetzner и т. Д. Но можно ли совместить это со статическими записями?
Я создаю базу данных со всеми записями и скриптами, которые обновляют список облачных виртуальных машин по запросу в базе данных. Все динамические хосты вместе со статическими хостами и некоторыми групповыми варами, варами хостов хранятся в базе данных. И есть веб-сервис, который выводит динамический инвентарь JSON, который загружает скрипт python и который используется как динамический инвентарь в моих плейбуках.
У меня вопрос - только я один с такой настройкой? Когда я думаю о компании с несколькими хостами VMWare вместе с динамическим числом виртуальных машин на этих хостах, а также с некоторыми другими физическими системами, было бы «ясно», что для этой настройки должен быть какой-то «инструмент» или помощь. Но, насколько я понимаю, есть либо статический инвентарь (YAML, INI), либо динамический инвентарь (JSON). Но разве каждый администратор разрабатывает свою собственную базу данных динамической инвентаризации? Или существует данный программный «продукт» или «проект»? Или «лучше» иметь разные инвентаризации для «статической» и «динамической» среды?
Ansible выпустил несколько плагины инвентаря. Да, вы можете комбинировать их, как несколько -i
параметры или укажите каталог, содержащий несколько инвентаризаций.
Например, все это может быть в inventory/stage/
и inventory/prod/
каталоги:
Названия групп должны соответствовать заданному предмету, поэтому в играх можно использовать статические шаблоны.
Построено довольно аккуратно. Используйте выражения Jinja для фактов из инвентаря или хостов для создания групп и варов. Например, вы можете захотеть, чтобы какой-то тег ec2 плюс какое-то регулярное выражение имени хоста были членами группы.
Если этого недостаточно, вы можете написать свои собственные плагины для инвентаря. Обычно они обращаются к одному API, скажем, если вы взломали плагин инвентаризации Proxmox. Или откажитесь от множественного инвентаря на стороне Ansible, найдите мультиоблачный инструмент, который работает для вас, и заставьте его генерировать JSON для инвентаризации.