Spec-Zone.ru › Ansible

Модуль 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.
  • Типичный сценарий использования:
    1. добавить новую группу (группы) с помощью модуля community.postgresql.postgresql_user, указав role_attr_flags=NOLOGIN
    1. назначить группе необходимые привилегии с помощью модуля community.postgresql.postgresql_privs
    1. добавить необходимые роли пользователей PostgreSQL в новую группу (группы) с помощью этого модуля

Требования

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

  • psycopg2 >= 2.5.1

Параметры

Параметр

Комментарии

ca_cert

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

строка

Указывает имя файла, содержащего сертификат (сертификаты) центра сертификации (CA) SSL.

Если файл существует, будет проверено, что сертификат сервера подписан одним из этих центров.

connect_params

словарь

добавлено в community.postgresql 2.3.0

Любые дополнительные параметры, передаваемые в libpg.

Эти параметры имеют приоритет.

По умолчанию: {}

fail_on_role

логическое значение

Если true, завершить выполнение с ошибкой, если группа или target_role не существует. Если false, вывести предупреждение и продолжить выполнение.

Допустимые значения:

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

groups

псевдонимы: group, source_role, source_roles

список / элементы=строка / обязательный

Список групп (ролей), которые необходимо назначить для target_roles или отозвать у них.

login_db

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

строка

Имя базы данных, к которой нужно подключиться.

Псевдоним db устарел и будет удален в версии 5.0.0.

login_host

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

строка

Хост, на котором работает база данных.

Если при использовании localhost возникают проблемы с подключением, попробуйте использовать вместо этого 127.0.0.1.

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

login_password

строка

Пароль, который модуль должен использовать для установления сеанса PostgreSQL.

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

login_port

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

целое число

Порт базы данных, к которому нужно подключиться.

Псевдоним port устарел и будет удален в следующем основном выпуске. Вместо него используйте login_port.

По умолчанию: 5432

login_unix_socket

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

строка

Путь к сокету домена Unix для локальных подключений.

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

login_user

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

строка

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

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

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.

Значение по умолчанию prefer соответствует значению по умолчанию libpq.

Допустимые значения:

  • "allow"
  • "disable"
  • "prefer" ← (по умолчанию)
  • "require"
  • "verify-ca"
  • "verify-full"

state

строка

Состояние членства.

state=present означает, что groups необходимо назначить для target_roles.

state=absent означает, что groups необходимо отозвать у target_roles.

state=exact означает, что target_roles будут состоять только в groups (доступно начиная с community.postgresql 2.2.0). Все остальные группы будут удалены из target_roles.

Допустимые значения:

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

target_roles

псевдонимы: target_role, users, user

список / элементы=строка / обязательный

Список целевых ролей (им будут назначены группы).

trust_input

логическое значение

добавлено в community.postgresql 0.2.0

Если false, проверить, не являются ли значения параметров groups, target_roles, session_role потенциально опасными.

Использовать false имеет смысл только в том случае, если через параметры возможны SQL-инъекции.

Допустимые значения:

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

Атрибуты

Атрибут

Поддержка

Описание

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

Пример: {"ro_group": ["alice", "bob"]}

queries

строка

Список выполненных запросов.

Возвращается: при успешном выполнении

Пример: "['GRANT \"user_ro\" TO \"alice\"']"

revoked

словарь

Словарь отозванных групп и ролей.

Возвращается: если state=absent

Пример: {"ro_group": ["alice", "bob"]}

state

строка

Состояние членства, которое пытались установить.

Возвращается: при успешном выполнении

Пример: "present"

Авторы

  • Andrew Klychkov (@Andersson007)

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

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

© 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

Spec-Zone.ru

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