community.postgresql.postgresql_subscription – Добавление, обновление или удаление подписки PostgreSQL
Примечание
Этот плагин входит в коллекцию community.postgresql (версия 1.1.1).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в книге задач укажите: community.postgresql.postgresql_subscription.
Добавлено в версии 0.2.0: of community.postgresql
Обзор
- Добавление, обновление или удаление подписки PostgreSQL.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL. Если файл существует, серверный сертификат будет проверен на подпись одним из этих центров. Псевдонимы: ssl_rootcert | |
| cascade логическое значение |
| Удаление зависимостей подписки. Имеет эффект только со значением state=absent. Игнорируется, когда state не равно absent. |
| connparams словарь | Словарь параметров соединения для подключения к издателю. Для получения дополнительной информации см. https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING. Игнорируется, когда state не равно present. | |
| db строка / обязательно | Имя базы данных, к которой необходимо подключиться и где будет изменено состояние подписки. Псевдонимы: login_db | |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль, используемый для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix доменной области для локальных подключений. | |
| login_user строка | По умолчанию: "postgres" | Имя пользователя, используемое для аутентификации. |
| name строка / обязательно | Имя подписки для добавления, обновления или удаления. | |
| owner строка | Владелец подписки. Если owner не определен, владелец будет установлен как login_user или session_role. Игнорируется, когда state не равно present. | |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения. Псевдонимы: login_port |
| publications список / элементы=строка | Имена публикаций на издателе, которые будут использоваться для подписки. Игнорируется, когда state не равно present. | |
| session_role строка добавлено в 0.2.0 of community.postgresql | Переключение на session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user. Проверка разрешений для SQL-команд выполняется так, как будто session_role был тем, кто первоначально вошел в систему. | |
| ssl_mode строка |
| Определяет, будет ли и с каким приоритетом устанавливаться защищенное SSL-TCP/IP-соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. Значение по умолчанию prefer соответствует значению по умолчанию libpq. |
| state строка |
| Состояние подписки. present подразумевает, что если подписки name не существует, она будет создана.absent подразумевает, что если подписка name существует, она будет удалена.refresh подразумевает, что если подписка name существует, она будет обновлена. Извлечение отсутствующей информации о таблице из издателя. Всегда возвращает ``changed`` равно ``True``. Это запустит репликацию таблиц, которые были добавлены в подписываемые публикации с момента последнего вызова REFRESH PUBLICATION или с момента создания SUBSCRIPTION. Существующие данные в подписываемых публикациях должны быть скопированы после запуска репликации.Для получения дополнительной информации о refresh см. https://www.postgresql.org/docs/current/sql-altersubscription.html. |
| subsparams словарь | Словарь необязательных параметров для подписки, например, copy_data, enabled, create_slot и т. д. Для обновления подписки разрешены следующие ключи enabled, slot_name, synchronous_commit, publication_name.См. доступные параметры для создания новой подписки на https://www.postgresql.org/docs/current/sql-createsubscription.html. Игнорируется, когда state не равно present. | |
| trust_input логическое значение добавлено в 0.2.0 of community.postgresql |
| Если no, проверьте, являются ли значения параметров name, publications, owner, session_role, connparams, subsparams потенциально опасными.Использование yes имеет смысл только в том случае, если SQL-инъекции через параметры возможны. |
Примечания
Примечание
- Версия PostgreSQL должна быть 10 или выше.
- Поддерживает
check_mode. - Аутентификация по умолчанию предполагает, что вы входите в систему как или используя sudo для учетной записи
postgresна хосте. - Чтобы избежать ошибки «Ошибка аутентификации peer для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля.
- Если удаленный хост является сервером PostgreSQL (что является стандартным случаем), PostgreSQL также должен быть установлен на удаленном хосте.
- Для систем на базе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удаленном хосте перед использованием этого модуля.
- Параметр ca_cert требует как минимум версии Postgres 8.4 и версии psycopg2 2.4.3.
См. также
См. также
- community.postgresql.postgresql_publication
-
Официальная документация по модулю community.postgresql.postgresql_publication.
- community.postgresql.postgresql_info
-
Официальная документация по модулю community.postgresql.postgresql_info.
- Ссылка CREATE SUBSCRIPTION
-
Полное руководство по документации команды CREATE SUBSCRIPTION.
- Ссылка ALTER SUBSCRIPTION
-
Полное руководство по документации команды ALTER SUBSCRIPTION.
- Ссылка DROP SUBSCRIPTION
-
Полное руководство по документации команды DROP SUBSCRIPTION.
Примеры
- name: >
Create acme subscription in mydb database using acme_publication and
the following connection parameters to connect to the publisher.
Set the subscription owner as alice.
community.postgresql.postgresql_subscription:
db: mydb
name: acme
state: present
publications: acme_publication
owner: alice
connparams:
host: 127.0.0.1
port: 5432
user: repl
password: replpass
dbname: mydb
- name: Assuming that acme subscription exists, try to change conn parameters
community.postgresql.postgresql_subscription:
db: mydb
name: acme
connparams:
host: 127.0.0.1
port: 5432
user: repl
password: replpass
connect_timeout: 100
- name: Refresh acme publication
community.postgresql.postgresql_subscription:
db: mydb
name: acme
state: refresh
- name: Drop acme subscription from mydb with dependencies (cascade=yes)
community.postgresql.postgresql_subscription:
db: mydb
name: acme
state: absent
cascade: yes
- name: Assuming that acme subscription exists and enabled, disable the subscription
community.postgresql.postgresql_subscription:
db: mydb
name: acme
state: present
subsparams:
enabled: no
Возвращаемые значения
Общие возвращаемые значения описаны в здесь, ниже приведены поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| exists boolean | всегда | Флаг указывает, существует ли подписка в конце выполнения. Пример: True |
| final_state словарь | всегда | Конфигурация подписки в конце выполнения. Пример: {'conninfo': {}, 'enabled': True, 'owner': 'postgres', 'slotname': 'test', 'synccommit': True} |
| initial_state словарь | всегда | Конфигурация подписки в начале выполнения. Пример: {'conninfo': {}, 'enabled': True, 'owner': 'postgres', 'slotname': 'test', 'synccommit': True} |
| name строка | всегда | Имя подписки. Пример: acme |
| queries строка | всегда | Список выполненных запросов. Пример: ['DROP SUBSCRIPTION "mysubscription"'] |
Авторы
- Андрей Клычков (@Andersson007) <aaklychkov@mail.ru>
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/postgresql/postgresql_subscription_module.html