postgresql_slot – Добавление или удаление слотов из базы данных PostgreSQL
Новая версия с 2.8.
Обзор
- Добавление или удаление физических или логических слотов из базы данных PostgreSQL.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации (CA) 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 строка |
| Тип слота. Для получения дополнительной информации см. https://www.postgresql.org/docs/current/protocol-replication.html и https://www.postgresql.org/docs/current/logicaldecoding-explanation.html. |
| ssl_mode строка |
| Определяет, будет ли и с какой приоритетностью устанавливаться защищенное SSL TCP/IP-соединение с сервером. Дополнительную информацию о режимах см. на https://www.postgresql.org/docs/current/static/libpq-ssl.html. Значение по умолчанию prefer соответствует значению по умолчанию libpq. |
| state строка |
| Состояние слота.
state=present подразумевает, что слот должен присутствовать в системе.
state=absent подразумевает, что группы должны быть отозваны из target_roles. |
Примечания
Примечание
- Физические слоты репликации были введены в PostgreSQL с версией 9.4, а логические слоты репликации — начиная с версии 10.0.
- По умолчанию предполагается, что вы входите в систему или используете 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: Create physical_one physical slot if doesn't exist
become_user: postgres
postgresql_slot:
slot_name: physical_one
db: ansible
- name: Remove physical_one slot if exists
become_user: postgres
postgresql_slot:
slot_name: physical_one
db: ansible
state: absent
- name: Create logical_one logical slot to the database acme if doen't exist
postgresql_slot:
name: logical_slot_one
slot_type: logical
state: present
output_plugin: custom_decoder_one
- name: Remove logical_one slot if exists from the cluster running on another host and non-standard port
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)"] |
Статус
- Для этого модуля не гарантируется обратная совместимость. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- John Scalia (@jscalia)
- Andew Klychkov (@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_slot_module.html