В AWX можно вообще не хранить учетные данные s sh. Для этого вам придется внести некоторые коррективы. Вам не требуется подсказка при запуске. Помните, что в шаблонах заданий учетные данные s sh являются необязательными. Лучшее место для хранения учетных данных s sh - в хранилище Ansible, а в AWX (шаблон задания) хранятся только учетные данные хранилища. Вам необходимо проверить, как вы определяете учетные данные и перенести эту информацию из своей книги / задания в свой инвентарь. https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#connecting -to-hosts-поведенческие-инвентаризации-параметры
Вот изменения, внесенные для достижения этой цели -
- Определить среду c инвентаризация . Важно не изменять состояние узла в какой-либо другой среде, что помогает избежать неожиданностей во время выполнения. https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#example -он-инвентаризации за охрану окружающей среды .
Переместить учетные данные. из playbooks в инвентаризации - Вы можете настроить env. укажите c переменные на вашем уровне инвентаря вместе с магическими c переменными. Маги c переменные известны Ansible. Например -
ansible_connection, ansible_user, ansible_ssh_pass . Ansible хорошо понимает, он должен войти в систему через s sh, используя ansible_user, ansible_ssh_pass .
Таким образом, вам не нужно указывать учетные данные на AWX Job Шаблон и счастливо оставить параметр учетных данных компьютера пусто на уровне шаблона. https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html#magic.
Вот снимок переменных, которые я определяю на уровне инвентаря.
Переменные и хранилище - обратите внимание, что раздел учетных данных содержит значения как переменные. Очевидно, мы не хотим показывать какие-либо учетные данные в виде открытого текста. поэтому важно следовать рекомендациям Ansible, чтобы Ansible находил переменные в незашифрованном файле и все чувствительные переменные поступали из зашифрованного файла. https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#variables -and-vaults .
Я сохраняю переменный файл, т.е. файл конфигурации, вместе с хранилищем, чтобы они отображались во время выполнения в книгах воспроизведения. Вы можете создать подкаталог скажем vars и отобразить переменные, указанные как значения в переменных инвентаризации, в файл vars / var.yml . vars.yml может иметь ключ, определенный как -
ssh_secret_dev: "{{vault_secret_pass}}"
ssh_user_dev: имя пользователя
И зашифрованный файл хранилища может иметь окончательное значение -
vault_secret_pass : very_secret_password
Почему большой танец? Почему бы просто не определить все в хранилище и не связать переменную инвентаря с хранилищем? Это обеспечивает дополнительный уровень безопасности, где вы можете отобразить защищенные учетные данные в файле переменной и более конфиденциально в хранилище. Очевидно, что хранилище будет зашифровано, поэтому вам нужно указать учетные данные хранилища на уровне шаблона задания. Раздел учетных данных на уровне шаблона задания будет содержать только учетные данные хранилища .
Выберите приглашение при запуске для инвентаризации на уровне шаблона работы - Так как мы задаем среду WorkFlows c, а не шаблоны работы, поэтому мы можем упомянуть Inventory на уровне WorkFlow и выбрать приглашение при запуске в Уровень шаблонов работ, позволяющий инвентаризации применяться ко всем шаблонам заданий, которые имеют подсказку при запуске.
Отредактируйте Playbooks для загрузки этих двух переменных файлов (vault.yml и vars.yml).
- hosts: localhost
vars_files:
- ./vars/vault.yml
- ./vars/vars.yml
gather_facts: no
no_log: true
tasks:
- .....some tasks......
Вы также можете использовать любую переменную, которую вы определили в инвентаре (которая не является специальной ansible переменными), и использовать их в своих книгах, значения которых могут быть выбран из переменных файлов.