Пользовательские учетные данные в Ansible Tower с пользовательским скриптом Python - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь реализовать собственный скрипт в Ansible Tower для динамического импорта инвентаря.Пользовательский сценарий в основном написан с использованием Python и взаимодействует с Windows 2012 Server, который выступает в качестве контроллера домена (DC).Когда сценарий выполняется из Ansible Tower, он извлекает все рабочие станции из DC и добавляет в инвентарь Ansible.При этом мне пришлось передавать учетные данные DC в скрипте Python в виде простого текста, что нежелательно.Поэтому я искал способ хранения учетных данных в Ansible Tower и передачи их в качестве переменных в скрипте Python.

При исследовании этой темы, в основном, было найдено Настраиваемые учетные данные в скрипте настраиваемых ресурсов , который по сути определяется следующим образом в Ansible Tower:

Под пользовательскими учетными данными в Ansible Tower, ВХОДНАЯ КОНФИГУРАЦИЯ:

{
"fields": [{
    "id": "username",
    "label": "<Username>",
    "type": "string",
}, {
    "id": "password",
    "label": "<Password>",
    "type": "string",
    "secret": true
}],
}

Затем, ИНЖЕКЦИОННАЯ КОНФИГУРАЦИЯ:

{
"env": {
    "SAT_USERNAME": "{{username}}",
    "SAT_PASSWORD": "{{password}}"
}
}

После сохранения всего вышесказанного в Ansible Tower, насколько я понимаю, SAT_USERNAME и SAT_PASSWORD должны быть доступны в Ansible Tower.Вышеприведенное руководство также указывает, что эти пользовательские учетные данные могут быть доступны в скрипте Python, определив его следующим образом:

import os
username = os.environ.get("SAT_USERNAME")
password = os.environ.get("SAT_PASSWORD")

Тем не менее, когда скрипт Python выполняется из Ansible Tower, он не получает ни SAT_USERNAME, ни SAT_PASSWORD и, следовательно, не может успешно войти в Windows DC.

Я не уверен, должны ли пользовательские учетные данные быть доступными для Python или только для игр Ansible.

Любая помощь будетвысоко ценится.

1 Ответ

0 голосов
/ 11 октября 2018

Наконец-то получили пользовательские учетные данные для работы с пользовательскими сценариями.Краткое руководство, как этого добиться.

  1. После того, как КОНФИГУРАЦИЯ ВХОДА и КОНФИГУРАЦИЯ ВХОДА определена, как указано выше, сохраните ее.
  2. Из настроек перейдите в ПОЛНОМОЧИЯ.Выберите + ДОБАВИТЬ.Дайте новое имя для ПОЛНОМОЧИЙ.Нажмите на поиск в CREDENTIAL TYPE.Вы должны увидеть учетные данные, сохраненные на предыдущем шаге.
  3. Теперь интересный момент.Имя пользователя и пароль, которые были указаны в качестве метки в INPUT CONFIGURATION, активируются и теперь доступны для принятия значений полей.Укажите соответствующие значения и сохраните его.Это завершает учетную часть и является важной информацией, которую я пропустил.
  4. В списке ресурсов можно выбрать пользовательский сценарий и просмотреть учетные данные.Здесь будут доступны учетные данные, сохраненные на шаге 3.

Когда пользовательский сценарий синхронизируется, сценарий Python должен иметь возможность получать переменные среды без каких-либо проблем.

...