community.postgresql.postgresql_publication – Добавление, обновление или удаление публикации PostgreSQL
Примечание
Этот плагин входит в коллекцию community.postgresql (версия 1.1.1).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в книге задач укажите: community.postgresql.postgresql_publication.
Обзор
- Добавление, обновление или удаление публикации PostgreSQL.
Требования
Ниже перечислены требования, необходимые на хосте, на котором будет выполняться этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификаты центра сертификации (CA). Если файл существует, серверный сертификат будет проверен на подпись одним из этих центров. псевдонимы: ssl_rootcert | |
| cascade логическое |
| Удаление зависимостей публикаций. Имеет эффект только при state=absent. |
| db строка | Имя базы данных для подключения, в которой будет изменено состояние публикации. псевдонимы: login_db | |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix-домена для локальных подключений. | |
| login_user строка | Значение по умолчанию: "postgres" | Имя пользователя для аутентификации. |
| name строка / обязательно | Имя публикации для добавления, обновления или удаления. | |
| owner строка | Владелец публикации. Если owner не определен, владелец будет установлен как login_user или session_role. | |
| parameters словарь | Словарь с необязательными параметрами публикации. Доступные параметры зависят от версии PostgreSQL. | |
| port целое число | Значение по умолчанию: 5432 | Порт базы данных для подключения. псевдонимы: login_port |
| session_role строка добавлено в 0.2.0 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 строка |
| Состояние публикации. |
| tables список / элементы=строка | Список таблиц для добавления в публикацию. Если значение не задано, все таблицы являются целевыми. Если публикация уже существует для определенных таблиц и tables не передано, ничего не изменится. Если вам нужно добавить все таблицы к публикации с тем же именем, удалите существующие и создайте новые без передачи tables. | |
| trust_input логическое добавлено в 0.2.0 community.postgresql |
| Если no, проверьте, являются ли значения параметров name, tables, owner, session_role, params потенциально опасными.Использование no целесообразно только тогда, когда возможны SQL-инъекции через параметры. |
Примечания
Примечание
- Версия PostgreSQL должна быть 10 или выше.
- Поддерживает
check_mode. - Аутентификация по умолчанию предполагает, что вы вошли как или подменили учетную запись
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.
См. также
См. также
- Ссылка CREATE PUBLICATION
-
Полное руководство по документации команды CREATE PUBLICATION.
- Ссылка ALTER PUBLICATION
-
Полное руководство по документации команды ALTER PUBLICATION.
- Ссылка DROP PUBLICATION
-
Полное руководство по документации команды DROP PUBLICATION.
Примеры
- name: Create a new publication with name "acme" targeting all tables in database "test"
community.postgresql.postgresql_publication:
db: test
name: acme
- name: Create publication "acme" publishing only prices and vehicles tables
community.postgresql.postgresql_publication:
name: acme
tables:
- prices
- vehicles
- name: >
Create publication "acme", set user alice as an owner, targeting all tables
Allowable DML operations are INSERT and UPDATE only
community.postgresql.postgresql_publication:
name: acme
owner: alice
parameters:
publish: 'insert,update'
- name: >
Assuming publication "acme" exists and there are targeted
tables "prices" and "vehicles", add table "stores" to the publication
community.postgresql.postgresql_publication:
name: acme
tables:
- prices
- vehicles
- stores
- name: Remove publication "acme" if exists in database "test"
community.postgresql.postgresql_publication:
db: test
name: acme
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны в здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| alltables логическое | если публикация существует | Флаг, указывающий, что все таблицы опубликованы. |
| exists логическое | всегда | Флаг, указывающий, существует ли публикация в конце выполнения. Пример: True |
| owner строка | если публикация существует | Владелец публикации в конце выполнения. Пример: alice |
| parameters словарь | если публикация существует | Параметры публикации в конце выполнения. Пример: {'publish': {'delete': False, 'insert': False, 'update': True}} |
| queries строка | всегда | Список выполненных запросов. Пример: ['DROP PUBLICATION "acme" CASCADE'] |
| tables список / элементы=строка | если публикация существует | Список таблиц в публикации в конце выполнения. Если все таблицы опубликованы, возвращает пустой список. Пример: ['"public"."prices"', '"public"."vehicles"'] |
Авторы
- Loic Blot (@nerzhul) <loic.blot@unix-experience.fr>
- Andrew Klychkov (@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_publication_module.html