Как правило, список хостов и групп хостов окружения в 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