Запросы
При выполнении книги задач вы можете запросить у пользователя определенные данные, используя раздел ‘vars_prompt’.
Часто это используется для запроса конфиденциальных данных, которые вы не хотите записывать.
Это полезно не только с точки зрения безопасности, например, вы можете использовать одну и ту же книгу задач для всех релизов программного обеспечения и запросить определённую версию релиза в скрипте развертывания.
Вот самый простой пример:
---
- hosts: all
remote_user: root
vars:
from: "camelot"
vars_prompt:
- name: "name"
prompt: "what is your name?"
- name: "quest"
prompt: "what is your quest?"
- name: "favcolor"
prompt: "what is your favorite color?"
Примечание
Запросы для отдельных vars_prompt переменных будут пропущены для любой переменной, которая уже определена через командную строку --extra-vars опцию, или при запуске из неинтерактивной сессии (например, cron или Ansible Tower). См. Передача переменных в командной строке в главе /Переменные/.
Если у вас есть переменная, которая меняется редко, может иметь смысл предоставить значение по умолчанию, которое можно переопределить. Это можно сделать, используя аргумент по умолчанию:
vars_prompt:
- name: "release_version"
prompt: "Product release version"
default: "1.0"
Альтернативная форма vars_prompt позволяет скрыть ввод от пользователя и может в будущем поддерживать другие параметры, но в остальном работает аналогично:
vars_prompt:
- name: "some_password"
prompt: "Enter password"
private: yes
- name: "release_version"
prompt: "Product release version"
private: no
Если 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’ Портативное хеширование
- pbkdf2_digest - Универсальные PBKDF2 Хеширования
- cta_pbkdf2_sha1 - Криптографическое PBKDF2 хеширование
- dlitz_pbkdf2_sha1 - Dwayne Litzenberger’s PBKDF2 хеширование
- scram - SCRAM Хеширование
- bsd_nthash - FreeBSD’s MCF-совместимое nthash кодирование
Однако, принимаются только параметры ‘salt’ или ‘salt_size’. Вы можете использовать свой собственный соль с помощью ‘salt’, или сгенерировать его автоматически с помощью ‘salt_size’. Если ничего не указано, будет сгенерирован соль размером 8.
См. также
- Книги задач
- Введение в книги задач
- Условные операторы
- Условные операторы в книгах задач
- Переменные
- Все о переменных
- Список рассылки пользователей
- У вас есть вопрос? Загляните в группу 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.4/playbooks_prompts.html