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