Модуль community.postgresql.postgresql_publication — добавление, обновление или удаление публикации PostgreSQL
Примечание
Этот модуль входит в коллекцию community.postgresql (версия 4.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить ее, используйте: ansible-galaxy collection install community.postgresql. Для работы с этим модулем требуются дополнительные компоненты. Подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.postgresql.postgresql_publication.
Краткое описание
- Добавление, обновление или удаление публикации PostgreSQL.
Требования
Следующие компоненты требуются на узле, на котором выполняется этот модуль.
- psycopg2 >= 2.5.1
Параметры
Параметр | Комментарии |
|---|---|
ca_cert псевдонимы: ssl_rootcert строка | Указывает имя файла, содержащего сертификат центра сертификации (CA) SSL или сертификаты центров сертификации SSL. Если файл существует, будет проверено, что сертификат сервера подписан одним из этих центров. |
cascade логическое значение | Удалить зависимости публикации. Действует только при state=absent. Варианты:
|
columns словарь добавлено в community.postgresql 3.8.0 | Список таблиц и их столбцов, которые нужно добавить в публикацию. Если для таблицы столбцы не указаны, она будет опубликована целиком. Не может использоваться одновременно с tables и tables_in_schema. |
comment строка добавлено в community.postgresql 3.3.0 | Задает комментарий для публикации. Чтобы сбросить комментарий, передайте пустую строку. |
connect_params словарь добавлено в community.postgresql 2.3.0 | Любые дополнительные параметры, передаваемые в libpg. Эти параметры имеют приоритет. По умолчанию: |
login_db псевдонимы: db строка | Имя базы данных, к которой нужно подключиться и в которой будет изменено состояние публикации. Псевдоним |
login_host псевдонимы: host строка | Узел, на котором запущена база данных. Если при использовании По умолчанию: |
login_password строка | Пароль, который модуль должен использовать для установки сеанса PostgreSQL. По умолчанию: |
login_port псевдонимы: port целое число | Порт базы данных, к которому нужно подключиться. Псевдоним По умолчанию: |
login_unix_socket псевдонимы: unix_socket строка | Путь к доменному сокету Unix для локальных подключений. По умолчанию: |
login_user псевдонимы: login строка | Имя пользователя, которое модуль должен использовать для установки сеанса PostgreSQL. По умолчанию: |
name строка / обязательный | Имя публикации, которую нужно добавить, обновить или удалить. |
owner строка | Владелец публикации. Если owner не задан, владельцем будет login_user или session_role. |
parameters словарь | Словарь с необязательными параметрами публикации. Доступные параметры зависят от версии PostgreSQL. |
rowfilters словарь добавлено в community.postgresql 3.12.0 | Необязательный словарь фильтров строк, применяемых к tables или columns публикации. Не может использоваться одновременно с tables_in_schema. |
session_role строка добавлено в community.postgresql 0.2.0 | Переключиться на session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user. Проверка разрешений для команд SQL выполняется так, как если бы изначально вошедшим в систему пользователем была session_role. |
ssl_cert путь добавлено в community.postgresql 2.4.0 | Указывает имя файла сертификата SSL клиента. |
ssl_key путь добавлено в community.postgresql 2.4.0 | Указывает путь к закрытому ключу, используемому для сертификата клиента. |
ssl_mode строка | Определяет, будет ли согласовано с сервером защищенное SSL-соединение TCP/IP и, если да, с каким приоритетом. Дополнительные сведения о режимах см. по адресу https://www.postgresql.org/docs/current/static/libpq-ssl.html. Значение по умолчанию Варианты:
|
state строка | Состояние публикации. Варианты:
|
tables список / элементы=строка | Список таблиц, которые нужно добавить в публикацию. Если значение не задано, выбираются все таблицы. Если публикация уже существует для определенных таблиц, а параметр tables не передан, изменения не вносятся. Чтобы добавить в публикацию все таблицы с тем же именем, удалите существующую публикацию и создайте новую, не передавая tables. Не может использоваться одновременно с tables_in_schema и columns. |
tables_in_schema список / элементы=строка добавлено в community.postgresql 3.5.0 | Указывает список схем, которые нужно добавить в публикацию для репликации изменений всех таблиц в этих схемах. Чтобы удалить все схемы, явно передайте пустой список Поддерживается начиная с PostgreSQL 15. Не может использоваться одновременно с tables и columns. |
trust_input логическое значение добавлено в community.postgresql 0.2.0 | Если Использовать Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Модуль может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой узел. |
Примечания
Примечание
- Требуется PostgreSQL версии 10 или выше.
- По умолчанию предполагается, что вы входите в систему или переключаетесь с помощью sudo на учетную запись
postgresна узле. - Чтобы избежать ошибки «Peer authentication failed for user postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует
psycopg— адаптер базы данных PostgreSQL для Python. Перед использованием модуля необходимо убедиться, что на узле установленpsycopg2 >= 2.5.1илиpsycopg3 >= 3.1.8. - Если удаленный узел является сервером PostgreSQL (что используется по умолчанию), PostgreSQL также должен быть установлен на удаленном узле.
- Для систем на базе Ubuntu перед использованием этого модуля установите на удаленный узел пакеты
postgresql,libpq-devиpython3-psycopg2.
См. также
См. также
- Справочник по 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:
login_db: test
name: acme
comment: Made by Ansible
- name: Create publication "acme" publishing only prices and vehicles tables
community.postgresql.postgresql_publication:
name: acme
tables:
- prices
- vehicles
- name: Create publication "acme" publishing only prices table and id and name from vehicles tables
community.postgresql.postgresql_publication:
name: acme
columns:
prices:
vehicles:
- id
- name
- name: Create publication "acme" publishing id and name from vehicles tables, with a row filter
community.postgresql.postgresql_publication:
name: acme
columns:
vehicles:
- id
- name
rowfilters:
vehicles: (id > 100)
- name: >
Assuming publication "acme" exists, publishing id and name from vehicles table with a
row filter (id > 100), remove and re-add the table to the publication, with the updated row filter
community.postgresql.postgresql_publication:
name: acme
columns:
vehicles:
- id
- name
rowfilters:
vehicles: WHERE (id > 100) AND (id < 200)
- name: Create a new publication "acme" for tables in schema "myschema"
community.postgresql.postgresql_publication:
login_db: test
name: acme
tables_in_schema: myschema
- name: Remove all schemas from "acme" publication
community.postgresql.postgresql_publication:
login_db: test
name: acme
tables_in_schema: []
- 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:
login_db: test
name: acme
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны здесь. Ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
alltables логическое значение | Флаг указывает, что публикуются все таблицы. Возвращается: если публикация существует Пример: |
exists логическое значение | Флаг указывает, существует ли публикация по завершении выполнения. Возвращается: при успешном выполнении Пример: |
owner строка | Владелец публикации по завершении выполнения. Возвращается: если публикация существует Пример: |
parameters словарь | Параметры публикации по завершении выполнения. Возвращается: если публикация существует Пример: |
queries строка | Список выполненных запросов. Возвращается: при успешном выполнении Пример: |
tables список / элементы=строка | Список таблиц в публикации по завершении выполнения. Если публикуются все таблицы, возвращается пустой список. Возвращается: если публикация существует Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/postgresql/postgresql_publication_module.html