Spec-Zone.ru › Ansible

Взаимодействующие входные данные: подсказки

Если вы хотите, чтобы ваш плейбук запрашивал у пользователя определенный ввод, добавьте раздел «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

Spec-Zone.ru

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