Spec-Zone.ru › Ansible 2.4

postgresql_user — Добавляет или удаляет пользователей (роли) из базы данных PostgreSQL.

  • Описание
  • Требования (для хоста, на котором выполняется модуль)
  • Параметры
  • Примеры
  • Примечания
    • Статус

Описание

  • Добавляет или удаляет пользователей (роли) PostgreSQL с удаленного хоста и, необязательно, предоставляет им доступ к существующей базе данных или таблицам.
  • Основная функция модуля — создание или удаление ролей в кластере PostgreSQL. Назначение или снятие привилегий — необязательный шаг, который работает с одной базой данных за раз. Это позволяет вызывать модуль несколько раз в рамках одного модуля для изменения разрешений в разных базах данных или предоставления разрешений уже существующим пользователям.
  • Пользователь не может быть удален, пока от него не будут отозваны все привилегии. В таком случае, если модуль попытается удалить пользователя, он потерпит неудачу. Чтобы этого избежать, параметр fail_on_user сообщает модулю попробовать удалить пользователя, но если это невозможно, продолжить; модуль сообщит о произведённых изменениях и отдельно о том, был ли пользователь удалён или нет.

Требования (для хоста, на котором выполняется модуль)

  • psycopg2

Параметры

параметр обязателен значение по умолчанию выбор комментарии
conn_limit
(добавлен в 2.4)
нет
Указывает лимит подключений пользователя.
db
нет
имя базы данных, для которой будут предоставлены разрешения
encrypted
(добавлен в 1.4)
нет
указывает, хранится ли пароль в хешированном виде в базе данных. Булево значение. Пароли могут быть переданы в хешированном или нехешированном виде, и PostgreSQL гарантирует, что хранимый пароль будет хеширован, если установлен encrypted.
expires
(добавлен в 1.4)
нет
устанавливает срок действия пароля пользователя.
fail_on_user
нет да
  • да
  • нет
если yes, прекратить выполнение, когда пользователя невозможно удалить. Иначе просто залогировать и продолжить
login_host
нет localhost
Хост, на котором запущен PostgreSQL.
login_password
нет
Пароль, используемый для аутентификации в PostgreSQL
login_unix_socket
нет
Путь к Unix-сокету для локальных подключений
login_user
нет postgres
Пользователь (роль), используемый для аутентификации в PostgreSQL
name
да
имя пользователя (роли), для добавления или удаления
no_password_changes
(добавлен в 2.0)
нет нет
  • да
  • нет
если yes, не проверять базу данных на изменения пароля. Действует, когда pg_authid недоступен (например, AWS RDS). Иначе, изменить пароль по необходимости.
password
нет
установить пароль пользователя, до 1.4 это было обязательно.
При передаче зашифрованного пароля, необходимо также установить параметр encrypted, и он должен быть сгенерирован в формате 'str[\"md5\"] + md5[ password + username ]', что даёт в итоге 35 символов. Простой способ сделать это: echo \"md5`echo -n \"verysecretpasswordJOE\" | md5`\". Обратите внимание, что если предоставленная строка пароля уже находится в формате MD5-хеша, то она используется как есть, независимо от параметра encrypted.
port
нет 5432
Порт базы данных для подключения.
priv
нет
Строка привилегий PostgreSQL в формате: table:priv1,priv2
role_attr_flags
нет
  • [НЕТ]SUPERUSER
  • [НЕТ]CREATEROLE
  • [НЕТ]CREATEUSER
  • [НЕТ]CREATEDB
  • [НЕТ]INHERIT
  • [НЕТ]LOGIN
  • [НЕТ]REPLICATION
  • [НЕТ]BYPASSRLS
Строка атрибутов роли PostgreSQL в формате: CREATEDB,CREATEROLE,SUPERUSER
ssl_mode
(добавлен в 2.3)
нет prefer
  • disable
  • allow
  • prefer
  • require
  • verify-ca
  • verify-full
Определяет, будет ли и с каким приоритетом устанавливаться защищённое SSL TCP/IP соединение с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
ssl_rootcert
(добавлен в 2.3)
нет
Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL. Если файл существует, сертификат сервера будет проверен на соответствие одному из этих сертификатов.
state
нет present
  • present
  • absent
Состояние пользователя (роли)

Примеры

# Create django user and grant access to database and products table
- postgresql_user:
    db: acme
    name: django
    password: ceec4eif7ya
    priv: "CONNECT/products:ALL"

# Create rails user, grant privilege to create other databases and demote rails from super user status
- postgresql_user:
    name: rails
    password: secret
    role_attr_flags: CREATEDB,NOSUPERUSER

# Remove test user privileges from acme
- postgresql_user:
    db: acme
    name: test
    priv: "ALL/products:ALL"
    state: absent
    fail_on_user: no

# Remove test user from test database and the cluster
- postgresql_user:
    db: test
    name: test
    priv: ALL
    state: absent

# Example privileges string format
# INSERT,UPDATE/table:SELECT/anothertable:ALL

# Remove an existing user's password
- postgresql_user:
    db: test
    user: test
    password: NULL

Примечания

Примечание

  • По умолчанию предполагается, что вы авторизуетесь как пользователь postgres на хосте или используете sudo.
  • Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удалённый хост — это сервер PostgreSQL (что является типичным случаем), то PostgreSQL также должен быть установлен на удалённом хосте. Для систем на базе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом хосте перед использованием этого модуля.
  • Если библиотека passlib установлена, то пароли, зашифрованные в базе данных, но не зашифрованные при передаче в качестве аргументов, могут быть проверены на изменения. Если библиотека passlib не установлена, предполагается, что пароли, хранящиеся в зашифрованном виде в базе данных, но передаваемые без шифрования, изменены.
  • Если вы укажете PUBLIC в качестве пользователя, то изменения привилегий будут применены ко всем пользователям. Вы не можете указать пароль или role_attr_flags, когда указан пользователь PUBLIC.
  • Параметр ssl_rootcert требует как минимум версию Postgres 8.4 и psycopg2 версии 2.4.3.

Статус

Этот модуль помечен как stableinterface, что означает, что авторы модуля гарантируют отсутствие несовместимых изменений интерфейса.

Для помощи в разработке модулей, если вы заинтересованы, ознакомьтесь с Справочной информацией и участием в разработке сообщества, Тестированием Ansible и Разработкой модулей.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/postgresql_user_module.html

Spec-Zone.ru

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