Spec-Zone.ru › Ansible

Модуль community.general.htpasswd — управление файлами пользователей для базовой аутентификации

Примечание

Этот модуль входит в коллекцию community.general (версия 12.6.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.general. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.general.htpasswd.

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры

Краткое описание

  • Добавление и удаление записей имени пользователя и пароля в файл паролей с помощью htpasswd.
  • Используется веб-серверами, такими как Apache и Nginx, для базовой аутентификации.

Требования

Следующие требования необходимы на узле, на котором выполняется этот модуль.

  • passlib>=1.6

Параметры

Параметр

Комментарии

attributes

псевдонимы: attr

строка

Атрибуты, которые должен иметь результирующий объект файловой системы.

Список поддерживаемых флагов см. на странице руководства для chattr целевой системы.

Эта строка должна содержать атрибуты в том же порядке, в котором они отображаются командой lsattr.

По умолчанию предполагается оператор =; в противном случае в строку необходимо включить операторы + или -.

create

логический

Используется вместе с state=present. Если задано значение true, файл создаётся, если он не существует. И наоборот, если задано значение false, а файл не существует, выполнение завершается ошибкой.

Варианты:

  • false
  • true ← (по умолчанию)

group

строка

Имя группы, которой должен принадлежать объект файловой системы; это значение передаётся команде chown.

Если значение не указано, используется текущая группа текущего пользователя, если только вы не root: в этом случае может быть сохранён прежний владелец.

hash_scheme

псевдонимы: crypt_scheme

строка

Используемая схема хеширования. Помимо четырёх перечисленных здесь вариантов, можно использовать любые другие хеши, поддерживаемые passlib, например portable_apache22 и host_apache24; или md5_crypt и sha256_crypt, которые используются в хешах паролей Linux. Только некоторые схемы помимо четырёх приведённых ниже совместимы с Apache или Nginx; поддерживаемые схемы зависят от версии passlib и её зависимостей.

См. параметр default_scheme в документации https://passlib.readthedocs.io/en/stable/lib/passlib.apache.html#passlib.apache.HtpasswdFile.

Среди доступных вариантов могут быть: apr_md5_crypt, des_crypt, ldap_sha1, plaintext.

ПРЕДУПРЕЖДЕНИЕ: у модуля нет механизма для определения hash_scheme существующей записи, поэтому он не обнаруживает изменения hash_scheme. Чтобы изменить схему, необходимо удалить существующую запись, а затем создать новую с использованием новой схемы.

По умолчанию: "apr_md5_crypt"

mode

любое значение

Права доступа, которые должен иметь результирующий объект файловой системы.

Если вы привыкли к /usr/bin/chmod, помните, что режимы на самом деле являются восьмеричными числами. Ansible нужно передать достаточно информации, чтобы он мог правильно их обработать. Для получения стабильных результатов заключайте восьмеричные числа в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и преобразовал её в число самостоятельно. Добавление ведущего нуля (например, 0755) иногда работает, но может привести к ошибкам в циклах и некоторых других случаях.

Если передать Ansible число, не соблюдая ни одно из этих правил, оно будет воспринято как десятичное, что приведёт к неожиданным результатам.

Начиная с Ansible 1.8 режим можно задавать в символьном формате (например, u+rwx или u=rw,g=r,o=r).

Если mode не задан и целевой объект файловой системы не существует, при установке режима для вновь созданного объекта файловой системы будет использоваться системное значение по умолчанию umask.

Если mode не задан и целевой объект файловой системы существует, будет использоваться режим существующего объекта файловой системы.

Указание mode — лучший способ гарантировать, что объекты файловой системы создаются с правильными правами доступа. Дополнительные сведения см. в CVE-2020-1736.

name

псевдонимы: username

строка / обязательный

Имя пользователя, которое нужно добавить или удалить.

owner

строка

Имя пользователя, которому должен принадлежать объект файловой системы; это значение передаётся команде chown.

Если значение не указано, используется текущий пользователь, если только вы не root: в этом случае может быть сохранён прежний владелец.

Числовое имя пользователя будет считаться идентификатором пользователя, а не именем. Чтобы избежать неоднозначности, не используйте числовые имена пользователей.

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

строка

Должна ли запись пользователя присутствовать.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

unsafe_writes

логический

Управляет тем, когда следует использовать атомарную операцию для предотвращения повреждения данных или несогласованного чтения целевого объекта файловой системы.

По умолчанию этот модуль использует атомарные операции, чтобы предотвратить повреждение данных или несогласованное чтение целевых объектов файловой системы, однако иногда конфигурация систем или их неисправности этому мешают. Например, объекты файловой системы, подключённые в Docker, нельзя атомарно обновить изнутри контейнера — их можно записать только небезопасным способом.

Этот параметр позволяет Ansible при сбое атомарных операций перейти к небезопасным методам обновления объектов файловой системы (однако он не заставляет Ansible выполнять небезопасную запись).

ВАЖНО! Небезопасная запись подвержена состоянию гонки и может привести к повреждению данных.

Варианты:

  • false ← (по умолчанию)
  • true

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Модуль может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой объект.

diff_mode

Поддержка: нет

В режиме сравнения возвращает подробную информацию об изменениях (или о возможных изменениях в check_mode).

Примечания

Примечание

  • Для работы этого модуля требуется библиотека Python passlib, которую необходимо установить на всех целевых системах.
  • В Debian < 11, Ubuntu <= 20.04 или Fedora установите python-passlib.
  • В Debian и Ubuntu установите python3-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
    hash_scheme: md5_crypt

Авторы

  • Основная команда Ansible

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Обратиться за помощью
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/htpasswd_module.html

Spec-Zone.ru

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