Ansible-включить файл vars с удаленного хоста


Я хотел бы включить переменные из файла на удаленном хосте, а не на управляющей машине, на которой работает Ansible.

Например, у меня есть файл /var/database_credentials.yml (на моем веб-сервере)

Как лучше всего добавить переменные из этого файла в hostvars, чтобы я мог использовать их в шаблоне?

Модуль include_vars принимает только файлы с управляющей машины. Я мог бы использовать модуль выборки, но это кажется ненужным шагом.

1 7

1 ответ:

Это не должно быть трудно интегрировать с /etc/ansible/facts.d.

Вы можете хранить файлы JSON, INI-файлы или исполняемые скрипты в этом каталоге, и содержимое / выходные данные будут доступны в качестве фактов сервера после выполнения модуля установки.

Я не уверен, что это займет ЯМЛ. Возможно, Вам повезет, и вы просто добавите символическую ссылку в свой файл /var/database_credentials.yml. (ЯМЛ не упоминается в документах, но было бы странно, если бы ЯМЛ не поддерживался, так как почти все в Ansible основано на YAML) если нет, вы можете создать скрипт на предпочитаемом вами языке, который читает этот файл и выводит объект JSON.

См. Местные Факты (Факты.d) в документах.