community.postgresql.postgresql_publication модуль — Добавление, обновление или удаление публикации PostgreSQL
Примечание
Этот модуль является частью коллекции community.postgresql (версия 3.6.1).
Вам, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Для использования в плейбуке укажите: community.postgresql.postgresql_publication.
Обзор
- Добавление, обновление или удаление публикации PostgreSQL.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- psycopg2 >= 2.5.1
Параметры
Параметр | Комментарии |
|---|---|
ca_cert aliases: ssl_rootcert string | Указывает имя файла, содержащего сертификат(ы) центра сертификации (CA). Если файл существует, сертификат сервера будет проверен на соответствие подписи одного из этих центров. |
cascade boolean | Удаляет зависимости публикации. Действует только со значением state=absent. Варианты:
|
comment string добавлено в community.postgresql 3.3.0 | Устанавливает комментарий к публикации. Чтобы сбросить комментарий, передайте пустую строку. |
connect_params dictionary добавлено в community.postgresql 2.3.0 | Все дополнительные параметры, которые будут переданы в libpg. Эти параметры имеют приоритет. Значение по умолчанию: |
db aliases: login_db string | Имя базы данных для подключения и изменения состояния публикации. |
login_host aliases: host string | Хост, на котором работает база данных. Если у вас возникли проблемы с подключением при использовании Значение по умолчанию: |
login_password string | Пароль, который должен использовать этот модуль для установления сеанса PostgreSQL. Значение по умолчанию: |
login_unix_socket aliases: unix_socket string | Путь к сокету домена Unix для локальных подключений. Значение по умолчанию: |
login_user aliases: login string | Имя пользователя, которое должен использовать этот модуль для установления сеанса PostgreSQL. Значение по умолчанию: |
name string / required | Имя публикации для добавления, обновления или удаления. |
owner string | Владелец публикации. Если owner не определен, владельцем будет установлен login_user или session_role. |
parameters dictionary | Словарь с необязательными параметрами публикации. Доступные параметры зависят от версии PostgreSQL. |
port aliases: login_port integer | Порт базы данных для подключения. Значение по умолчанию: |
session_role string добавлено в community.postgresql 0.2.0 | Переключиться на session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user. Проверка прав для SQL-команд выполняется так, как если бы session_role был тем, кто изначально вошел в систему. |
ssl_cert path добавлено в community.postgresql 2.4.0 | Указывает имя файла клиентского SSL-сертификата. |
ssl_key path добавлено в community.postgresql 2.4.0 | Указывает расположение секретного ключа, используемого для клиентского сертификата. |
ssl_mode string | Определяет, будет ли и с каким приоритетом устанавливаться защищенное SSL TCP/IP-соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. Значение по умолчанию Варианты:
|
состояние строка | Состояние публикации. Выбори:
|
таблицы список / элементы=строка | Список таблиц для добавления в публикацию. Если значение не задано, все таблицы будут выбраны. Если публикация уже существует для определенных таблиц и параметр таблицы не передается, никаких изменений не произойдет. Если вам нужно добавить все таблицы в публикацию с одинаковым именем, удалите существующие и создайте новые, не передавая параметр таблицы. Взаимоисключающее с параметром таблицы_в_схеме. |
таблицы_в_схеме список / элементы=строка добавлен в community.postgresql 3.5.0 | Указывает список схем для добавления в публикацию, чтобы реплицировать изменения для всех таблиц в этих схемах. Если вы хотите удалить все схемы, явно передайте пустой список Поддерживается начиная с PostgreSQL 15. Взаимоисключающее с параметром таблицы. |
доверять_вводу булево добавлен в community.postgresql 0.2.0 | Если Использование Выбори:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
режим_проверки | Поддержка: полная | Может работать в режиме проверки и возвращать прогноз изменения статуса без изменения целевых данных. |
Примечания
Примечание
- Версия PostgreSQL должна быть 10 или выше.
- По умолчанию предполагается, что вы входите под учетной записью
postgresна хосте или используете sudo. - Чтобы избежать ошибки «Ошибка проверки подлинности peer для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует
psycopg, адаптер базы данных Python PostgreSQL. Вы должны убедиться, что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:
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 a new publication "acme" for tables in schema "myschema"
community.postgresql.postgresql_publication:
db: test
name: acme
tables_in_schema: myschema
- name: Remove all schemas from "acme" publication
community.postgresql.postgresql_publication:
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:
db: test
name: acme
state: absent
Значения возврата
Общие значения возврата документированы здесь, следующие — поля, уникальные для данного модуля:
Ключ | Описание |
|---|---|
alltables boolean | Флаг, указывающий, что все таблицы опубликованы. Возвращается: если публикация существует Пример: |
exists boolean | Флаг, указывающий, существует ли публикация по завершении выполнения. Возвращается: при успехе Пример: |
owner string | Владелец публикации по завершении выполнения. Возвращается: если публикация существует Пример: |
parameters dictionary | Параметры публикации по завершении выполнения. Возвращается: если публикация существует Пример: |
queries string | Список выполненных запросов. Возвращается: при успехе Пример: |
tables list / elements=string | Список таблиц в публикации по завершении выполнения. Если все таблицы опубликованы, возвращается пустой список. Возвращается: если публикация существует Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/postgresql/postgresql_publication_module.html