community.general.htpasswd – управление файлами пользователей для аутентификации по основанию
Примечание
Этот плагин является частью коллекции community.general (версия 2.0.1).
Для его установки используйте: ansible-galaxy collection install community.general
Для использования в книге задач укажите: community.general.htpasswd
Обзор
- Добавление и удаление записей имя пользователя/пароль в файле паролей с помощью htpasswd.
- Используется веб-серверами, такими как Apache и Nginx, для аутентификации по основанию.
Требования
Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.
- passlib>=1.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлен в 2.3 ansible.builtin | Атрибуты, которые должны иметь результирующий файл или директория. Чтобы узнать поддерживаемые флаги, см. страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. Оператор = предполагается по умолчанию, в противном случае операторы + или - необходимо включить в строку.псевдонимы: attr | |
| create логическое |
| Используется с state=present. Если указано, файл будет создан, если он еще не существует. Если установлено в «нет», произойдет ошибка, если файл не существует |
| crypt_scheme строка | По умолчанию: "apr_md5_crypt" | Схема шифрования, которая должна быть использована. Помимо четырех вариантов, перечисленных здесь, вы также можете использовать любой другой хеш, поддерживаемый passlib, такой как md5_crypt и sha256_crypt, которые являются хэшами linux passwd. Если вы это сделаете, файл паролей не будет совместим с Apache или Nginx Некоторые из доступных вариантов могут быть: apr_md5_crypt, des_crypt, ldap_sha1, plaintext
|
| group строка | Имя группы, которой должен принадлежать файл/директория, как если бы это передавалось в chown. | |
| mode сырой | Разрешения, которые должен иметь результирующий файл или директория. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы парсер YAML Ansible знал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и мог выполнить собственное преобразование из строки в число.Если Ansible получит число без выполнения одного из этих правил, это будет десятичное число, что приведет к неожиданным результатам. Начиная с Ansible 1.8, режим может быть указан как символический режим (например, u+rwx или u=rw,g=r,o=r).Если mode не указано и целевой файл не существует, по умолчанию будет использоваться umask на системе при установке режима для вновь созданного файла.Если mode не указано и целевой файл существует, будет использован режим существующего файла.Указание mode — лучший способ гарантировать, что файлы будут созданы с правильными разрешениями. См. CVE-2020-1736 для получения дополнительной информации. | |
| name строка / обязательный | Имя пользователя для добавления или удаления псевдонимы: имя_пользователя | |
| owner строка | Имя пользователя, которому должен принадлежать файл/директория, как если бы это передавалось в chown. | |
| password строка | Пароль, связанный с пользователем. Должен быть указан, если пользователь еще не существует. | |
| path путь / обязательный | Путь к файлу, содержащему имена пользователей и пароли псевдонимы: dest, destfile | |
| selevel строка | Часть уровня SELinux контекста файла. Это атрибут MLS/MCS, иногда известный как range. При установке в _default, будет использоваться часть политики level, если она доступна. | |
| serole строка | Часть роли SELinux контекста файла. При установке в _default, будет использоваться часть политики role, если она доступна. | |
| setype строка | Часть типа SELinux контекста файла. При установке в _default, будет использоваться часть политики type, если она доступна. | |
| seuser строка | Часть пользователя SELinux контекста файла. По умолчанию используется политика system, где это применимо.При установке в _default, будет использоваться часть политики user, если она доступна. | |
| state строка |
| Определяет, должно ли быть указано имя пользователя в списке |
| unsafe_writes логическое добавлен в 2.2 ansible.builtin |
| Влияет на то, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настраиваются или просто выходят из строя таким образом, что это предотвращается. Одним из примеров являются файлы, смонтированные в docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачей (однако он не принуждает Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
Примечания
Примечание
- Этот модуль зависит от Python библиотеки passlib, которая должна быть установлена на всех целевых системах.
- В Debian, Ubuntu или Fedora: установите python-passlib.
- В RHEL или CentOS: включите EPEL, затем установите python-passlib.
Примеры
- name: Add a user to a password file and ensure permissions are set
community.general.htpasswd:
path: /etc/nginx/passwdfile
name: janedoe
password: '9s36?;fyNp'
owner: root
group: www-data
mode: 0640
- name: Remove a user from a password file
community.general.htpasswd:
path: /etc/apache2/passwdfile
name: foobar
state: absent
- name: Add a user to a password file suitable for use by libpam-pwdfile
community.general.htpasswd:
path: /etc/mail/passwords
name: alex
password: oedu2eGh
crypt_scheme: md5_crypt
Авторы
- Команда разработчиков Ansible
© 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/community/general/htpasswd_module.html