password – получение или генерация случайного пароля, хранящегося в файле
Обзор
- Генерирует случайный текстовый пароль и сохраняет его в файле по заданному пути.
- Если файл существует ранее, он извлечёт его содержимое, работая точно так же, как и с_file.
- Использование переменных, таких как
"{{ inventory_hostname }}", в пути к файлу может использоваться для настройки случайных паролей для каждого хоста, что упрощает управление паролями в"host_vars"переменных. - Особый случай — использование /dev/null в качестве пути. Поиск пароля будет генерировать новый случайный пароль каждый раз, но не будет записывать его в /dev/null. Это можно использовать, когда нужен пароль без его хранения на контроллере.
Параметры
| Параметр | Варианты/Значения по умолчанию | Настройка | Комментарии |
|---|---|---|---|
| _terms - / обязательно | путь к файлу, в котором хранятся/будут храниться пароли | ||
| chars строка | Определите список имён через запятую, которые составляют настраиваемый набор символов в сгенерированных паролях. По умолчанию сгенерированные пароли содержат случайную смесь прописных и строчных букв ASCII, цифр от 0 до 9 и знаков препинания (". , : - _"). Они могут быть частями атрибутов модуля строк Python (ascii_letters,digits и т. д.) или использоваться буквально (:, -). Для ввода запятой используйте две запятые ',,' где-нибудь — предпочтительнее в конце. Цитаты и двойные кавычки не поддерживаются. | ||
| encrypt - | По умолчанию: "None" | Схема хеширования для шифрования возвращаемого пароля, должна быть одной из схем хеширования из passlib.hash. Если не указано, пароль будет возвращён в виде открытого текста. Обратите внимание, что пароль всегда хранится как открытый текст, шифруется только возвращаемый пароль. Encrypt также принудительно сохраняет значение соли для идемпотентности. Обратите внимание, что до версии 2.6 этот параметр в течение долгого времени ошибочно маркировался как булев. | |
| length целое число | По умолчанию: 20 | Длина сгенерированного пароля. |
Примечания
Примечание
- Отличной альтернативой плагину поиска паролей, если вам не нужно генерировать случайные пароли для каждого хоста, является использование 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 a random password using only digits
mysql_user:
name: "{{ client }}"
password: "{{ lookup('password', '/tmp/passwordfile 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.8/plugins/lookup/password.html