Spec-Zone.ru › Ansible

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.

Варианты:

  • false ← (default)
  • true

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

Хост, на котором работает база данных.

Если у вас возникли проблемы с подключением при использовании localhost, попробуйте использовать 127.0.0.1 вместо этого.

Значение по умолчанию: ""

login_password

string

Пароль, который должен использовать этот модуль для установления сеанса PostgreSQL.

Значение по умолчанию: ""

login_unix_socket

aliases: unix_socket

string

Путь к сокету домена Unix для локальных подключений.

Значение по умолчанию: ""

login_user

aliases: login

string

Имя пользователя, которое должен использовать этот модуль для установления сеанса PostgreSQL.

Значение по умолчанию: "postgres"

name

string / required

Имя публикации для добавления, обновления или удаления.

owner

string

Владелец публикации.

Если owner не определен, владельцем будет установлен login_user или session_role.

parameters

dictionary

Словарь с необязательными параметрами публикации.

Доступные параметры зависят от версии PostgreSQL.

port

aliases: login_port

integer

Порт базы данных для подключения.

Значение по умолчанию: 5432

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 для получения дополнительной информации о режимах.

Значение по умолчанию prefer соответствует значению по умолчанию libpq.

Варианты:

  • "allow"
  • "disable"
  • "prefer" ← (default)
  • "require"
  • "verify-ca"
  • "verify-full"

состояние

строка

Состояние публикации.

Выбори:

  • "absent"
  • "present" ← (по умолчанию)

таблицы

список / элементы=строка

Список таблиц для добавления в публикацию.

Если значение не задано, все таблицы будут выбраны.

Если публикация уже существует для определенных таблиц и параметр таблицы не передается, никаких изменений не произойдет.

Если вам нужно добавить все таблицы в публикацию с одинаковым именем, удалите существующие и создайте новые, не передавая параметр таблицы.

Взаимоисключающее с параметром таблицы_в_схеме.

таблицы_в_схеме

список / элементы=строка

добавлен в community.postgresql 3.5.0

Указывает список схем для добавления в публикацию, чтобы реплицировать изменения для всех таблиц в этих схемах.

Если вы хотите удалить все схемы, явно передайте пустой список [].

Поддерживается начиная с PostgreSQL 15.

Взаимоисключающее с параметром таблицы.

доверять_вводу

булево

добавлен в community.postgresql 0.2.0

Если false, проверять, являются ли значения параметров имя, таблицы, владелец, роль_сессии, параметры потенциально опасными.

Использование false имеет смысл только тогда, когда возможны SQL-инъекции через параметры.

Выбори:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

режим_проверки

Поддержка: полная

Может работать в режиме проверки и возвращать прогноз изменения статуса без изменения целевых данных.

Примечания

Примечание

  • Версия 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

Флаг, указывающий, что все таблицы опубликованы.

Возвращается: если публикация существует

Пример: false

exists

boolean

Флаг, указывающий, существует ли публикация по завершении выполнения.

Возвращается: при успехе

Пример: true

owner

string

Владелец публикации по завершении выполнения.

Возвращается: если публикация существует

Пример: "alice"

parameters

dictionary

Параметры публикации по завершении выполнения.

Возвращается: если публикация существует

Пример: {"publish": {"delete": false, "insert": false, "update": true}}

queries

string

Список выполненных запросов.

Возвращается: при успехе

Пример: "['DROP PUBLICATION \"acme\" CASCADE']"

tables

list / elements=string

Список таблиц в публикации по завершении выполнения.

Если все таблицы опубликованы, возвращается пустой список.

Возвращается: если публикация существует

Пример: ["\"public\".\"prices\"", "\"public\".\"vehicles\""]

Авторы

  • Loic Blot (@nerzhul)
  • Andrew Klychkov (@Andersson007)

Ссылки на коллекцию

  • Система отслеживания задач
  • Репозиторий (источники)
  • Сообщить об ошибке
  • Общение

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API