community.postgresql.postgresql_slot – Добавление или удаление реплицируемых слотов из базы данных PostgreSQL
Примечание
Этот плагин входит в коллекцию community.postgresql (версия 1.1.1).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в книге задач укажите: community.postgresql.postgresql_slot.
Обзор
- Добавление или удаление физических или логических реплицируемых слотов из базы данных PostgreSQL.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL. Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. псевдонимы: ssl_rootcert | |
| db строка | Имя базы данных для подключения. псевдонимы: login_db | |
| immediately_reserve булево |
| Дополнительный параметр, который, когда yes, указывает, что LSN для этого реплицируемого слота должен быть зарезервирован немедленно, в противном случае по умолчанию, no, указывает, что LSN резервируется при первом подключении от клиента потоковой репликации.Доступен с версии PostgreSQL 9.6. Используется только с slot_type=physical. Взаимоисключающий с slot_type=logical. |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix для локальных подключений. | |
| login_user строка | По умолчанию: "postgres" | Имя пользователя для аутентификации. |
| name строка / обязательно | Имя реплицируемого слота для добавления или удаления. псевдонимы: slot_name | |
| output_plugin строка | По умолчанию: "test_decoding" | Все логические слоты должны указывать, какой декодер плагина вывода они используют. Этот параметр не относится к физическим слотам. Он будет проигнорирован с slot_type=physical. |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения. псевдонимы: login_port |
| session_role строка | Переключение на session_role после подключения. Указанный session_role должен быть ролью, членом которой является текущий login_user. Проверка разрешений для SQL-команд выполняется так, как будто session_role был тем, кто изначально вошел в систему. | |
| slot_type строка |
| Тип слота. |
| ssl_mode строка |
| Определяет, будет ли и с какой приоритетностью устанавливаться защищенное SSL TCP/IP-соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. По умолчанию prefer соответствует значению по умолчанию libpq. |
| state строка |
| Состояние слота.
state=present подразумевает, что слот должен присутствовать в системе.
state=absent подразумевает, что группы должны быть отозваны из target_roles. |
| trust_input булево добавлен в 0.2.0 community.postgresql |
| Если no, проверьте, что значение session_role потенциально опасно.Использование no целесообразно только в случае возможности SQL-инъекций через session_role. |
Примечания
Примечание
- Физические реплицируемые слоты были введены в PostgreSQL с версией 9.4, а логические реплицируемые слоты — начиная с версии 10.0.
- Поддерживает
check_mode. - Аутентификация по умолчанию предполагает, что вы либо входите в систему как, либо используете 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.
См. также
См. также
- Ссылка на справку по представлению PostgreSQL pg_replication_slots
-
Полная справка по представлению PostgreSQL pg_replication_slots.
- Ссылка на справку по протоколу потоковой репликации PostgreSQL
-
Полная справка по документации протокола потоковой репликации PostgreSQL.
- Ссылка на справку по протоколу логической репликации PostgreSQL
-
Полная справка по документации протокола логической репликации PostgreSQL.
Примеры
- name: Create physical_one physical slot if doesn't exist
become_user: postgres
community.postgresql.postgresql_slot:
slot_name: physical_one
db: ansible
- name: Remove physical_one slot if exists
become_user: postgres
community.postgresql.postgresql_slot:
slot_name: physical_one
db: ansible
state: absent
- name: Create logical_one logical slot to the database acme if doesn't exist
community.postgresql.postgresql_slot:
name: logical_slot_one
slot_type: logical
state: present
output_plugin: custom_decoder_one
db: "acme"
- name: Remove logical_one slot if exists from the cluster running on another host and non-standard port
community.postgresql.postgresql_slot:
name: logical_one
login_host: mydatabase.example.org
port: 5433
login_user: ourSuperuser
login_password: thePassword
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны в этом разделе, ниже приведены поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| name строка | всегда | Имя слота. Пример: physical_one |
| queries строка | всегда | Список выполненных запросов. Пример: ["SELECT pg_create_physical_replication_slot('physical_one', False, False)"] |
Авторы
- John Scalia (@jscalia)
- Andrew Klychkov (@Andersson007)
- Thomas O’Donnell (@andytom)
© 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_slot_module.html