Модуль community.postgresql.postgresql_membership — добавление ролей PostgreSQL в группы и их удаление
Примечание
Этот модуль входит в коллекцию community.postgresql (версия 4.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля требуются дополнительные компоненты. Подробную информацию см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.postgresql.postgresql_membership.
Краткое описание
- Добавляет роли PostgreSQL в группы (другие роли) или удаляет их из групп.
- Пользователи — это роли с правом входа.
- Группы — это роли PostgreSQL, обычно не имеющие права LOGIN.
- Типичный сценарий использования:
-
- добавить новую группу (группы) с помощью модуля community.postgresql.postgresql_user, указав role_attr_flags=NOLOGIN
-
- назначить группе необходимые привилегии с помощью модуля community.postgresql.postgresql_privs
-
- добавить необходимые роли пользователей PostgreSQL в новую группу (группы) с помощью этого модуля
Требования
На хосте, где выполняется этот модуль, должны быть установлены следующие компоненты.
- psycopg2 >= 2.5.1
Параметры
Параметр | Комментарии |
|---|---|
ca_cert псевдонимы: ssl_rootcert строка | Указывает имя файла, содержащего сертификат (сертификаты) центра сертификации (CA) SSL. Если файл существует, будет проверено, что сертификат сервера подписан одним из этих центров. |
connect_params словарь добавлено в community.postgresql 2.3.0 | Любые дополнительные параметры, передаваемые в libpg. Эти параметры имеют приоритет. По умолчанию: |
fail_on_role логическое значение | Если Допустимые значения:
|
groups псевдонимы: group, source_role, source_roles список / элементы=строка / обязательный | Список групп (ролей), которые необходимо назначить для target_roles или отозвать у них. |
login_db псевдонимы: db строка | Имя базы данных, к которой нужно подключиться. Псевдоним |
login_host псевдонимы: host строка | Хост, на котором работает база данных. Если при использовании По умолчанию: |
login_password строка | Пароль, который модуль должен использовать для установления сеанса PostgreSQL. По умолчанию: |
login_port псевдонимы: port целое число | Порт базы данных, к которому нужно подключиться. Псевдоним По умолчанию: |
login_unix_socket псевдонимы: unix_socket строка | Путь к сокету домена Unix для локальных подключений. По умолчанию: |
login_user псевдонимы: login строка | Имя пользователя, которое модуль должен использовать для установления сеанса PostgreSQL. По умолчанию: |
session_role строка | После подключения переключиться на session_role. Указанная session_role должна быть ролью, членом которой является текущий login_user. Проверка разрешений для команд SQL выполняется так, как если бы изначально вошедшим пользователем была session_role. |
ssl_cert путь добавлено в community.postgresql 2.4.0 | Указывает имя файла клиентского сертификата SSL. |
ssl_key путь добавлено в community.postgresql 2.4.0 | Указывает расположение секретного ключа, используемого для клиентского сертификата. |
ssl_mode строка | Определяет, будет ли устанавливаться защищенное TCP/IP-подключение SSL к серверу и, если да, с каким приоритетом. Дополнительные сведения о режимах см. по адресу https://www.postgresql.org/docs/current/static/libpq-ssl.html. Значение по умолчанию Допустимые значения:
|
state строка | Состояние членства. state=present означает, что groups необходимо назначить для target_roles. state=absent означает, что groups необходимо отозвать у target_roles. state=exact означает, что target_roles будут состоять только в groups (доступно начиная с community.postgresql 2.2.0). Все остальные группы будут удалены из target_roles. Допустимые значения:
|
target_roles псевдонимы: target_role, users, user список / элементы=строка / обязательный | Список целевых ролей (им будут назначены группы). |
trust_input логическое значение добавлено в community.postgresql 0.2.0 | Если Использовать Допустимые значения:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Модуль может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой объект. |
Примечания
Примечание
- При стандартной аутентификации предполагается, что вы входите в систему как учетная запись
postgresна хосте или переключаетесь на нее с помощью sudo. - Чтобы избежать ошибки «Peer authentication failed for user postgres», укажите пользователя postgres в качестве become_user.
- Этот модуль использует
psycopg— адаптер базы данных PostgreSQL для Python. Перед использованием модуля необходимо установить на хостpsycopg2 >= 2.5.1илиpsycopg3 >= 3.1.8. - Если удаленный хост является сервером PostgreSQL (что используется по умолчанию), PostgreSQL также необходимо установить на удаленном хосте.
- В системах на базе Ubuntu перед использованием этого модуля установите на удаленный хост пакеты
postgresql,libpq-devиpython3-psycopg2.
См. также
См. также
- community.postgresql.postgresql_user
-
Создает, изменяет или удаляет пользователя (роль) в экземпляре сервера PostgreSQL.
- community.postgresql.postgresql_privs
-
Выдает или отзывает привилегии для объектов базы данных PostgreSQL.
- community.postgresql.postgresql_owner
-
Изменяет владельца объекта базы данных PostgreSQL.
- Справочник по членству в ролях PostgreSQL
-
Полная справочная документация по членству в ролях PostgreSQL.
- Справочник по атрибутам ролей PostgreSQL
-
Полная справочная документация по атрибутам ролей PostgreSQL.
Примеры
- name: Grant role read_only to alice and bob
community.postgresql.postgresql_membership:
group: read_only
target_roles:
- alice
- bob
state: present
# you can also use target_roles: alice,bob,etc to pass the role list
- name: Revoke role read_only and exec_func from bob. Ignore if roles don't exist
community.postgresql.postgresql_membership:
groups:
- read_only
- exec_func
target_role: bob
fail_on_role: false
state: absent
- name: >
Make sure alice and bob are members only of marketing and sales.
If they are members of other groups, they will be removed from those groups
community.postgresql.postgresql_membership:
group:
- marketing
- sales
target_roles:
- alice
- bob
state: exact
- name: Make sure alice and bob do not belong to any groups
community.postgresql.postgresql_membership:
group: []
target_roles:
- alice
- bob
state: exact
Возвращаемые значения
Общие возвращаемые значения описаны здесь. Ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
granted словарь | Словарь назначенных групп и ролей. Возвращается: если state=present Пример: |
queries строка | Список выполненных запросов. Возвращается: при успешном выполнении Пример: |
revoked словарь | Словарь отозванных групп и ролей. Возвращается: если state=absent Пример: |
state строка | Состояние членства, которое пытались установить. Возвращается: при успешном выполнении Пример: |
Ссылки на коллекцию
© 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/postgresql/postgresql_membership_module.html