Я пытаюсь реализовать собственный скрипт в 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.
Любая помощь будетвысоко ценится.