Документация Инструкции Настройка динамического инвентаря Ansible (dynamic inventory)


Как правило, список хостов и групп хостов окружения в Ansible описывается в статическом текстовом файле hosts в формете ini, например:
$ cat ansible_project01/hosts
[mysql]
mysql001
mysql002

[nginx]
nginx001
nginx002

Такой подход годится для небольших окружений, где редко происходят изменения в составе хостов. В больших окружениях, где постоянно происходит создание и удаление хостов, уже становится трудно поддерживать текстовый список в актуальном состоянии.

Для решения этой проблемы в Ansible включена поддержка динамической генерации инвентаря скриптом, который будет подтягивать данные, например, из какой-нибудь базы и на лету генерировать структуру данных для инвентаря.
Последние версии Ansible также содержат собственный плагин для подключения к Openstack API:
cat ansible.cfg
[defaults]
inventory=openstack.yml
...
[inventory]
enable_plugins = openstack
...


Настройки плагина

cat openstack.yml
plugin: openstack
cache: True
cache_plugin: redis
cache_connection: localhost
expand_hostvars: yes
fail_on_errors: yes


Можно также выбрать другие варианты кэширования, вывести список доступных плугинов кэширования можно так:

ansible-doc -t cache -l

jsonfile  JSON formatted files
mongodb   Use MongoDB for caching
redis     Use Redis DB for cache
yaml      YAML formatted files
memory    RAM backed, non persistent
pickle    Pickle formatted files
memcached Use memcached DB for cache
  


При использовании кэширования в ansible следует учесть, что ansible будет кэшировать и списки хостов, сбросить кэш в redis можно командой:
$ redis-cli flushall
OK


Подробнее о кэшировании в Ansible можно прочесть в официальной документации: https://docs.ansible.com/ansible/2.9/plugins/cache.html

Для настройки авторизации подключения к Openstack API нужно создать файл с переменными, готовый к использованию файл можно взять в Панели управления в разделе Инфо вашего датацентра.


В файл останется только добавить пароль для подключения к датацентру OS_PASSWORD. Нажмите и расшифруйте строку, используя ваш приватный SSH ключ, ранее добавленный в Панель управления.



Теперь вы можете, загрузив переменные с авторизацией, подключать Ansible к Openstack API.

Напоминаем, что в Панели управления вы можете из Heat шаблона установить полностью готовый к работе виртуальный сервер с проектом Ansible, уже настроенным для работы с виртуальным датацентром. Полная инструкция по ссылке: https://ringhost.io/doc/how_to_install_openstack_ansible