Интерактивный ввод: подсказки
Если вы хотите, чтобы ваш плейбук запросил у пользователя определённый ввод, добавьте раздел «vars_prompt». Запрос переменных у пользователя позволяет избежать записи конфиденциальных данных, таких как пароли. Помимо безопасности, подсказки обеспечивают гибкость. Например, если вы используете один плейбук для нескольких релизов программного обеспечения, вы можете запросить конкретную версию релиза.
- Шифрование значений, предоставленных
vars_prompt - Разрешение специальных символов в значениях
vars_prompt
Вот самый простой пример:
---
- hosts: all
vars_prompt:
- name: username
prompt: What is your username?
private: no
- name: password
prompt: What is your password?
tasks:
- name: Print a message
ansible.builtin.debug:
msg: 'Logging in as {{ username }}'
Ввод пользователя по умолчанию скрыт, но его можно сделать видимым, установив private: no
Примечание
Подсказки для отдельных vars_prompt переменных будут пропущены для любой переменной, которая уже определена через параметр командной строки --extra-vars, или при запуске из неинтерактивной сессии (например, cron или Ansible Tower). См. Определение переменных во время выполнения.
Если у вас есть переменная, которая меняется нечасто, вы можете указать значение по умолчанию, которое можно переопределить:
vars_prompt:
- name: release_version
prompt: Product release version
default: "1.0"
Шифрование значений, предоставленных vars_prompt
Вы можете зашифровать введённое значение, чтобы использовать его, например, с модулем пользователя для определения пароля:
vars_prompt:
- name: my_password2
prompt: Enter password2
private: yes
encrypt: sha512_crypt
confirm: yes
salt_size: 7
Если у вас установлен Passlib, вы можете использовать любой алгоритм шифрования, поддерживаемый библиотекой:
- des_crypt - DES шифрование
- bsdi_crypt - BSDi шифрование
- bigcrypt - BigCrypt
- crypt16 - Crypt16
- md5_crypt - MD5 шифрование
- bcrypt - BCrypt
- sha1_crypt - SHA-1 шифрование
- sun_md5_crypt - Sun MD5 шифрование
- sha256_crypt - SHA-256 шифрование
- sha512_crypt - SHA-512 шифрование
- apr_md5_crypt - Apache’s MD5-Crypt вариант
- phpass - PHPass’ Portable Hash
- pbkdf2_digest - Общие PBKDF2 хеширования
- cta_pbkdf2_sha1 - Cryptacular’s PBKDF2 хеширование
- dlitz_pbkdf2_sha1 - Dwayne Litzenberger’s PBKDF2 хеширование
- scram - SCRAM хеширование
- bsd_nthash - FreeBSD’s MCF-совместимое nthash кодирование
Принимаются только параметры «salt» или «salt_size». Вы можете использовать свой собственный соль, определив «salt», или сгенерировать его автоматически, используя «salt_size». По умолчанию Ansible генерирует соль размером 8.
Новое в версии 2.7.
Если у вас не установлен Passlib, Ansible использует библиотеку crypt в качестве резервного варианта. Ansible поддерживает не более четырёх алгоритмов шифрования, в зависимости от вашей платформы, поддерживаются, как максимум, следующие алгоритмы шифрования:
- bcrypt - BCrypt
- md5_crypt - MD5 шифрование
- sha256_crypt - SHA-256 шифрование
- sha512_crypt - SHA-512 шифрование
Новое в версии 2.8.
Разрешение специальных символов в vars_prompt значениях
Некоторые специальные символы, такие как { и %, могут создавать ошибки шаблонизации. Если вам необходимо принять специальные символы, используйте опцию unsafe
vars_prompt:
- name: my_password_with_weird_chars
prompt: Enter password
unsafe: yes
private: yes
См. также
- Введение в плейбуки
-
Введение в плейбуки
- Условные операторы
-
Условные операторы в плейбуках
- Использование переменных
-
Всё о переменных
- Список рассылки пользователей
-
У вас есть вопрос? Зайдите на форум!
- irc.freenode.net
-
Канал IRC-чат #ansible
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/user_guide/playbooks_prompts.html