Spec-Zone.ru › Ansible 2.11

ansible.builtin.password – получение или генерация случайного пароля, хранящегося в файле

Примечание

Этот модуль является частью ansible-base и включен во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля password, даже не указывая ключевое слово collections:. Несмотря на это, мы рекомендуем использовать FQCN для лёгкой ссылки на документацию модуля и для избежания конфликтов с другими коллекциями, которые могут иметь такое же имя модуля.

Добавлен в версии 1.1: ansible.builtin

  • Описание
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Описание

  • Генерирует случайный текстовый пароль и сохраняет его в файл по заданному пути.
  • Если файл существует ранее, он получит его содержимое, точно так же, как и с with_file.
  • Использование переменных, таких как "{{ inventory_hostname }}", в пути к файлу позволяет настраивать случайные пароли для каждого хоста, что упрощает управление паролями в "host_vars" переменных.
  • Особый случай — использование /dev/null в качестве пути. Поиск пароля будет генерировать новый случайный пароль каждый раз, но не будет записывать его в /dev/null. Это может быть использовано, когда вам нужен пароль, без его сохранения на контроллере.

Параметры

Параметр Варианты/Значения по умолчанию Настройка Комментарии
_terms
строка / обязательно
путь к файлу, который хранит/будет хранить пароли
chars
строка
добавлен в версии 1.4 ansible.builtin
Определяет список символов, разделённых запятыми, которые составляют настраиваемый набор символов в сгенерированных паролях.
По умолчанию, сгенерированные пароли содержат случайную смесь прописных и строчных букв ASCII, цифр от 0 до 9 и знаков препинания (". , : - _").
Они могут быть либо частями атрибутов модуля Python's string, либо представлены буквально ( :, -).
Хотя модули строк могут различаться в зависимости от версии Python, допустимые значения для обеих основных версий включают: 'ascii_lowercase', 'ascii_uppercase', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation' и 'whitespace'.
Обратите внимание, что Python's 'hexdigits' включает прописные и строчные версии a-f, поэтому это не лучший выбор, так как он удваивает вероятность этих значений для систем, которые не различают регистр, искажая ожидаемую энтропию.
Для ввода запятых используйте две запятые ',,' где-то — предпочтительно в конце. Кавычки и двойные кавычки не поддерживаются.
encrypt
строка
Схему хеширования для шифрования возвращаемого пароля, должна быть одной из схем хеширования из passlib.hash; md5_crypt, bcrypt, sha256_crypt, sha512_crypt.
Если не указано, пароль будет возвращён в текстовом виде.
Обратите внимание, что пароль всегда хранится в виде простого текста, шифруется только возвращаемый пароль.
Encrypt также принуждает к сохранению значения соли для идемпотентности.
Обратите внимание, что до версии 2.6 этот параметр долгое время неправильно указывался как булев.
length
целое число
По умолчанию:
20
Длина генерируемого пароля.

Примечания

Примечание

  • Отличной альтернативой модулю поиска паролей, если вам не нужно генерировать случайные пароли для каждого хоста, будет использование Vault в playbooks. Прочитайте документацию там и рассмотрите возможность её использования в первую очередь, это будет предпочтительнее для большинства приложений.
  • Если файл уже существует, данные в него не будут записаны. Если файл содержит содержимое, то это содержимое будет считано как пароль. Пустые файлы приводят к возвращению пароля как пустой строки.
  • Как и все запросы, это выполняется на хосте Ansible пользователем, выполняющим playbook, и «become» не применяется. Целевой файл должен быть читаемым пользователем playbook, или, если он не существует, пользователь playbook должен иметь достаточные привилегии для его создания. (Например, попытки записи в такие области, как /etc, завершатся неудачей, если весь playbook не выполняется от имени root).

Примеры

- name: create a mysql user with a random password
  mysql_user:
    name: "{{ client }}"
    password: "{{ lookup('password', 'credentials/' + client + '/' + tier + '/' + role + '/mysqlpassword length=15') }}"
    priv: "{{ client }}_{{ tier }}_{{ role }}.*:ALL"

- name: create a mysql user with a random password using only ascii letters
  mysql_user:
    name: "{{ client }}"
    password: "{{ lookup('password', '/tmp/passwordfile chars=ascii_letters') }}"
    priv: '{{ client }}_{{ tier }}_{{ role }}.*:ALL'

- name: create a mysql user with an 8 character random password using only digits
  mysql_user:
    name: "{{ client }}"
    password: "{{ lookup('password', '/tmp/passwordfile length=8 chars=digits') }}"
    priv: "{{ client }}_{{ tier }}_{{ role }}.*:ALL"

- name: create a mysql user with a random password using many different char sets
  mysql_user:
    name: "{{ client }}"
    password: "{{ lookup('password', '/tmp/passwordfile chars=ascii_letters,digits,punctuation') }}"
    priv: "{{ client }}_{{ tier }}_{{ role }}.*:ALL"

- name: create lowercase 8 character name for Kubernetes pod name
  set_fact:
    random_pod_name: "web-{{ lookup('password', '/dev/null chars=ascii_lowercase,digits length=8') }}"

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:

Ключ Возвращённое значение Описание
_raw
список / элементы=строка
успех
пароль



Авторы

  • Daniel Hokka Zakrisson (!НЕИЗВЕСТНО) <daniel@hozac.com>
  • Javier Candeira (!НЕИЗВЕСТНО) <javier@candeira.com>
  • Maykel Moya (!НЕИЗВЕСТНО) <mmoya@speedyrails.com>

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/password_lookup.html

Spec-Zone.ru

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