Подсказки
При выполнении книги задач вы можете запросить у пользователя определённый ввод, используя раздел «vars_prompt».
Часто это используется для запроса конфиденциальных данных, которые вы не хотите записывать.
Это полезно не только для безопасности, например, вы можете использовать одну и ту же книгу задач для всех релизов программного обеспечения и запросить определённую версию релиза в скрипте развертывания.
Вот самый базовый пример:
---
- hosts: all
vars_prompt:
- name: username
prompt: "What is your username?"
private: no
- name: password
prompt: "What is your password?"
tasks:
- 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"
Если установлен Passlib, 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». Если ничего не указано, будет сгенерирован соль размером 8.
Новое в версии 2.7.
Когда Passlib не установлен, используется библиотека crypt в качестве резервного варианта. В зависимости от вашей платформы, поддерживаются, как максимум, следующие алгоритмы шифрования:
- bcrypt - BCrypt
- md5_crypt - MD5 шифрование
- sha256_crypt - SHA-256 шифрование
- sha512_crypt - SHA-512 шифрование
Новое в версии 2.8.
Если вам нужно вставить специальные символы (например, {%), которые могут создать ошибки шаблонизации, используйте параметр unsafe:
vars_prompt:
- name: "my_password_with_wierd_chars"
prompt: "Enter password"
unsafe: yes
private: yes
См. также
- Работа с книгами задач
- Введение в книги задач
- Условные операторы
- Условные операторы в книгах задач
- Использование переменных
- Все о переменных
- Список рассылки пользователей
- У вас есть вопрос? Обратитесь в группу Google!
- irc.freenode.net
- #ansible IRC чат-канал
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/user_guide/playbooks_prompts.html