password – получение или генерация случайного пароля, хранящегося в файле
Описание
- Генерирует случайный текстовый пароль и сохраняет его в файле по указанному пути.
- Если файл уже существует, он извлечёт его содержимое, ведя себя так же, как и с функцией with_file.
- Использование переменных, таких как
"{{ inventory_hostname }}", в пути к файлу позволяет настраивать случайные пароли для каждого хоста, что упрощает управление паролями в"host_vars"переменных. - Особым случаем является использование /dev/null в качестве пути. Поиск пароля будет генерировать новый случайный пароль каждый раз, но не будет записывать его в /dev/null. Это можно использовать, когда вам нужен пароль без его сохранения на контроллере.
Параметры
| Параметр | Варианты/Значения по умолчанию | Настройка | Комментарии |
|---|---|---|---|
| _terms - / обязательно | Путь к файлу, хранящему/будущему хранить пароли | ||
| chars строка | Определите список имён через запятую, которые составят пользовательский набор символов в сгенерированных паролях. По умолчанию сгенерированные пароли содержат случайную смесь заглавных и строчных букв ASCII, цифр 0-9 и знаков препинания (". , : - _"). Они могут быть частями атрибутов модуля строк Python (ascii_letters, digits и т. д.) или использоваться буквально (:, -). Чтобы ввести запятую, используйте две запятые ',,' где-нибудь — желательно в конце. Цитаты и двойные кавычки не поддерживаются. | ||
| encrypt - | Схема хеширования для шифрования возвращаемого пароля, должна быть одной из схем хеширования из passlib.hash. Если не указано, пароль будет возвращен в текстовом виде. Обратите внимание, что пароль всегда хранится в текстовом виде, шифруется только возвращаемый пароль. 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,hexdigits,punctuation') }}"
priv: "{{ client }}_{{ tier }}_{{ role }}.*:ALL"
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие являются полями, уникальными для этого поиска:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| _raw - | пароль |
Статус
- Гарантии обратной совместимости для этого поиска нет. [превью]
- Этот поиск поддерживается сообществом Ansible. [сообщество]
Авторы
- Daniel Hokka Zakrisson <daniel@hozac.com>
- Javier Candeira <javier@candeira.com>
- Maykel Moya <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.9/plugins/lookup/password.html