Spec-Zone.ru › Ansible 2.11

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
строка
    Варианты:
  • allow
  • disable
  • prefer ←
  • require
  • verify-ca
  • verify-full
Определяет, будет ли или с какой приоритетностью устанавливаться защищенное SSL TCP/IP-соединение с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
state
строка
    Варианты:
  • absent
  • present ←
Состояние публикации.
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

Spec-Zone.ru

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