Spec-Zone.ru › Ansible

Модуль 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.

Варианты:

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

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

строка

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

Псевдоним db устарел и будет удален в версии 5.0.0.

login_host

псевдонимы: host

строка

Узел, на котором запущена база данных.

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

По умолчанию: ""

login_password

строка

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

По умолчанию: ""

login_port

псевдонимы: port

целое число

Порт базы данных, к которому нужно подключиться.

Псевдоним port устарел и будет удален в следующем основном выпуске. Вместо него используйте login_port.

По умолчанию: 5432

login_unix_socket

псевдонимы: unix_socket

строка

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

По умолчанию: ""

login_user

псевдонимы: login

строка

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

По умолчанию: "postgres"

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.

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

Варианты:

  • "allow"
  • "disable"
  • "prefer" ← (по умолчанию)
  • "require"
  • "verify-ca"
  • "verify-full"

state

строка

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

Варианты:

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

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

Если false, проверять, не являются ли значения параметров name, tables, owner, session_role, params потенциально опасными.

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

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

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

логическое значение

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

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

Пример: false

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)
  • Andrew Klychkov (@Andersson007)
  • George Spanos (@grantanplan)

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

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

© 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

Spec-Zone.ru

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