Spec-Zone.ru › Ansible 2.9

Запросы

При выполнении книги задач вы можете запросить у пользователя определенный ввод с помощью раздела «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 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 - Вариант MD5-Crypt Apache
  • phpass - Portable Hash PHPass
  • pbkdf2_digest - Общие хеши PBKDF2
  • cta_pbkdf2_sha1 - Хеш PBKDF2 Cryptacular
  • dlitz_pbkdf2_sha1 - Хеш PBKDF2 Dwayne Litzenberger
  • scram - Хеш SCRAM
  • bsd_nthash - Кодирование nthash, совместимое с MCF FreeBSD

Однако, принимаются только параметры «salt» или «salt_size». Вы можете использовать собственный соль с помощью «salt» или сгенерировать его автоматически с помощью «salt_size». Если ничего не указано, будет сгенерирована соль размером 8.

Введено в версии 2.7.

Если Passlib не установлен, используется библиотека crypt в качестве резервного варианта. В зависимости от вашей платформы, поддерживаются следующие схемы шифрования:

  • bcrypt - BCrypt
  • md5_crypt - MD5 Crypt
  • sha256_crypt - SHA-256 Crypt
  • sha512_crypt - SHA-512 Crypt

Введено в версии 2.8.

Если вам нужно вставить специальные символы (например, {%), которые могут вызвать ошибки шаблонизации, используйте опцию unsafe:

vars_prompt:
  - name: "my_password_with_weird_chars"
    prompt: "Enter password"
    unsafe: yes
    private: yes

См. также

О книгах задач
Вступление к книгам задач
Условные операторы
Условные операторы в книгах задач
Использование переменных
Все о переменных
Список рассылки пользователей
У вас есть вопрос? Заходите на Google группу!
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.9/user_guide/playbooks_prompts.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API