community.general.postgresql_subscription – Добавление, обновление или удаление подписки PostgreSQL
Примечание
Этот плагин является частью коллекции community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в книге задач укажите: community.general.postgresql_subscription.
Добавлено в версии 0.2.0: коллекции community.general
Обзор
- Добавление, обновление или удаление подписки PostgreSQL.
Требования
Ниже приведены требования к хосту, на котором будет выполняться этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации (CA). Если файл существует, серверный сертификат будет проверен на подпись одним из этих центров. псевдонимы: 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 коллекции community.general | Переключение на роль 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 или с момента создания подписки. Существующие данные в подписываемых публикациях должны быть скопированы после начала репликации.Для получения дополнительной информации об 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 коллекции community.general |
| Если no, проверьте, являются ли значения параметров name, publications, owner, session_role, connparams, subsparams потенциально опасными.Использование yes имеет смысл только в том случае, если возможны SQL-инъекции через параметры. |
Примечания
Примечание
- Версия PostgreSQL должна быть 10 или выше.
- По умолчанию аутентификация предполагает, что вы либо вошли в систему как пользователь, либо вошли в систему с правами sudo как
postgresна хосте. - Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя 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.general.postgresql_publication
-
Официальная документация модуля community.general.postgresql_publication.
- community.general.postgresql_info
-
Официальная документация модуля community.general.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.general.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.general.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.general.postgresql_subscription:
db: mydb
name: acme
state: refresh
- name: Drop acme subscription from mydb with dependencies (cascade=yes)
community.general.postgresql_subscription:
db: mydb
name: acme
state: absent
cascade: yes
- name: Assuming that acme subscription exists and enabled, disable the subscription
community.general.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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/postgresql_subscription_module.html