Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

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

Описание

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

Параметры

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

Примечания

Примечание

  • Отличной альтернативой модулю поиска паролей, если вам не нужно генерировать случайные пароли для каждого хоста, будет использование Vault в заданиях. Прочитайте документацию Vault и рассмотрите использование его в первую очередь, это будет более желательно для большинства приложений.
  • Если файл уже существует, в него не будут записаны данные. Если файл содержит содержимое, это содержимое будет считано как пароль. Пустые файлы приводят к тому, что пароль возвращается как пустая строка.
  • Как и все поиски, это выполняется на хосте Ansible пользователем, запускающим задание, и «become» не применяется, целевой файл должен быть доступен для чтения пользователем задания, или, если он не существует, пользователь задания должен иметь достаточные права для его создания. (Таким образом, например, попытки записи в такие области, как /etc, завершатся неудачей, если всё задание не выполняется от имени 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,hexdigits,punctuation') }}"
    priv: "{{ client }}_{{ tier }}_{{ role }}.*:ALL"

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

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

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



Авторы

  • Daniel Hokka Zakrisson (!UNKNOWN) <daniel@hozac.com>
  • Javier Candeira (!UNKNOWN) <javier@candeira.com>
  • Maykel Moya (!UNKNOWN) <mmoya@speedyrails.com>

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

Spec-Zone.ru

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