Ansible Dynami c Инвентарь - как ввести значения в источник инвентаризации - PullRequest
1 голос
/ 20 февраля 2020

Сначала немного фона.

У меня есть динамический инвентарь c, который извлекает данные из внешнего источника. У меня есть различные сборники игр, которые выполняют несколько задач с использованием этого инвентаря, и я запускаю их либо по команде adho c ansible-playbook, либо по Ansible AWX .

При тестировании При подключении к управляемым хостам я могу запускать такие команды, как ansible -m ping -i inventories/ linuxnode.servers.fqdn, и это прекрасно работает. У меня также есть инвентаризация syn c в AWX, и это тоже хорошо работает.

Это работает с использованием inventory source в inventories/ в формате YAML, в котором я передаю некоторые значения в сценарий пользовательской инвентаризации the_custom_plugin. Пример файла YAML datacenter1.yml:

plugin: the_custom_plugin
url: "https://externalapp.servers.fqdn"
username: poweruser
privatekey: secretpassword

Теперь я хочу избавиться от имени пользователя и пароля по очевидным причинам безопасности и вместо этого скрыть их:

  1. В среде переменные при запуске с помощью команды ansible-playbook; и
  2. В учетных данных AWX при запуске через AWX.

Проблема в , кажется, нет способа ввести значения в переменные в инвентарь соус. Даже очень простое изменение, подобное этому, не работает (т.е. пользовательский плагин не работает):

plugin: the_custom_plugin
url: "https://externalapp.servers.fqdn"
temp_username: poweruser
username: "{{ temp_username }}"
privatekey: secretpassword

Есть ли secret YAML syntax для исходного файла инвентаризации, который использует внешний плагин? Или проблема как-то в пользовательском коде плагина? Я очень озадачен тем, что это даже не работает:

temp_username: poweruser
username: "{{ temp_username }}"

Приветствия.

...