окружение на виртуалках, а прод на железе
между ВМ и железом есть отличия - как минимум именование сетевых интерфейсов - это важно, потому что в конфиги надо прописывать
и не факт что только это отличие будет
и вот как тут правильно огранизовать плейбуки\роли - для каждого окружения писать свое или пытаться сделать универсально?
Я вынес это в локальные факты на машины в facts.d
а можно подробней? я пока себе придумал так что в инвентори для каждого окружения будет некая переменная "флаг", и по наличию ее или по ее значению в плейбуках\ролях будет выполняться или не выполняться определенные таски. хреново что роль будет привязана к инвентарю - но тут может и уйти от ролей и все в плейбуки загнать?
Я про сведения об интерфейсах. На каждой тачке в локальный facts.d кладешь if_lan и if_inet к примеру
И какой-то флаг виртуалка/хост был в обычных фактах
ansible_virtualization_type а вот вопрос - откуда он его берет? бывали у меня случаи когда ВМ на ESXi репортила мониторинговым агентам что она чисто железный сервер судя по manufacturer_info, из-за чего накатывались неправильные политики
https://github.com/ansible/ansible/tree/devel/lib/ansible/module_utils/facts/virtual
Там еще "ansible_virtualization_role" есть
Обсуждают сегодня