Spec-Zone.ru › Ansible 2.8

postgresql_membership – Добавление или удаление ролей PostgreSQL из групп

Новое в версии 2.8.

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

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

  • Добавляет или удаляет роли PostgreSQL из групп (других ролей) https://www.postgresql.org/docs/current/role-membership.html.
  • Пользователи — это роли с привилегией входа (см. https://www.postgresql.org/docs/current/role-attributes.html для получения дополнительной информации).
  • Группы — это роли PostgreSQL, обычно без привилегии входа.
  • Типичный случай использования:
    1. Добавление новой группы (групп) с помощью модуля postgresql_user https://docs.ansible.com/ansible/latest/modules/postgresql_user_module.html с параметром role_attr_flags=NOLOGIN
    1. Предоставление необходимых привилегий с помощью модуля postgresql_privs https://docs.ansible.com/ansible/latest/modules/postgresql_privs_module.html
    1. Добавление необходимых пользователей PostgreSQL в новую группу (группы) с помощью этого модуля

Требования

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

  • psycopg2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
ca_cert
строка
Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL.
Если файл существует, серверный сертификат будет проверен на подпись одним из этих центров.

алиасы: ssl_rootcert
db
строка
Имя базы данных для подключения.

алиасы: login_db
fail_on_role
логическое значение
    Варианты:
  • no
  • да ←
Если yes, прервать выполнение, когда группа или целевая роль не существует. Если no, просто выдать предупреждение и продолжить.
groups
список / обязательно
Список групп (ролей), которым необходимо предоставить или отозвать target_roles.

алиасы: group, source_role, source_roles
login_host
строка
Хост, на котором выполняется база данных.
login_password
строка
Пароль, используемый для аутентификации.
login_unix_socket
строка
Путь к Unix-сокету для локальных подключений.
login_user
строка
По умолчанию:
"postgres"
Имя пользователя, используемое для аутентификации.
port
целое число
По умолчанию:
5432
Порт базы данных для подключения.

алиасы: login_port
session_role
строка
Переключение на session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user.
Проверка разрешений для SQL-команд выполняется так, как будто session_role был тем, кто изначально вошел в систему.
ssl_mode
строка
    Варианты:
  • allow
  • disable
  • prefer ←
  • require
  • verify-ca
  • verify-full
Определяет, будет ли и с какой приоритетностью устанавливаться защищённое SSL TCP/IP-соединение с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
state
строка
    Варианты:
  • absent
  • present ←
Состояние членства.
state=present подразумевает, что groups должны быть предоставлены target_roles.
state=absent подразумевает, что groups должны быть отозваны у target_roles.
target_roles
список / обязательно
Список целевых ролей (группы будут предоставлены им).

алиасы: target_role, users, user

Примечания

Примечание

  • Аутентификация по умолчанию предполагает, что вы вошли в систему как пользователь postgres или используете sudo для входа в систему под учетной записью postgres на хосте.
  • Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
  • Этот модуль использует psycopg2, адаптер базы данных Python PostgreSQL. Вы должны убедиться, что psycopg2 установлен на хосте перед использованием этого модуля.
  • Если удалённый хост является сервером PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удалённом хосте.
  • Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом хосте перед использованием этого модуля.
  • Аутентификация по умолчанию предполагает, что вы вошли в систему как или используете sudo для входа в систему под учетной записью postgres на хосте.
  • Этот модуль использует psycopg2, адаптер базы данных Python PostgreSQL. Вы должны убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удалённый хост является сервером PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удалённом хосте. Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev, и python-psycopg2 на удалённом хосте перед использованием этого модуля.
  • Для параметра ca_cert требуется как минимум версия Postgres 8.4 и версия psycopg2 2.4.3.

Примеры

- name: Grant role read_only to alice and bob
  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
  postgresql_membership:
    groups:
    - read_only
    - exec_func
    target_role: bob
    fail_on_role: no
    state: absent

Возвращаемые значения

Общие возвращаемые значения документированы здесь, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
granted
словарь
если state=present
Словарь предоставленных групп и ролей.

Пример:
{'ro_group': ['alice', 'bob']}
queries
строка
всегда
Список выполненных запросов.

Пример:
['GRANT "user_ro" TO "alice"']
revoked
словарь
если state=absent
Словарь отозванных групп и ролей.

Пример:
{'ro_group': ['alice', 'bob']}
state
строка
всегда
Состояние членства, которое пытались установить.

Пример:
present


Статус

  • Этот модуль не гарантирует обратную совместимость интерфейса. [preview]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

  • Андрей Клычков (@Andersson007)

Подсказка

Если вы заметили какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.

© 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/modules/postgresql_membership_module.html

Spec-Zone.ru

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