ansible.builtin.postgresql_publication (v2.9.24) — module

Add, update, or remove PostgreSQL publication

| "added in version" 2.9 of ansible.builtin"

Authors: Loic Blot (@nerzhul) <loic.blot@unix-experience.fr>, Andrew Klychkov (@Andersson007) <aaklychkov@mail.ru>

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.9.24

Description

Add, update, or remove PostgreSQL publication.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create a new publication with name "acme" targeting all tables in database "test".
  postgresql_publication:
    db: test
    name: acme
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create publication "acme" publishing only prices and vehicles tables.
  postgresql_publication:
    name: acme
    tables:
    - prices
    - vehicles
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: >
    Create publication "acme", set user alice as an owner, targeting all tables.
    Allowable DML operations are INSERT and UPDATE only
  postgresql_publication:
    name: acme
    owner: alice
    parameters:
      publish: 'insert,update'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: >
    Assuming publication "acme" exists and there are targeted
    tables "prices" and "vehicles", add table "stores" to the publication.
  postgresql_publication:
    name: acme
    tables:
    - prices
    - vehicles
    - stores
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Remove publication "acme" if exists in database "test".
  postgresql_publication:
    db: test
    name: acme
    state: absent

Inputs

    
db:
    aliases:
    - login_db
    description:
    - Name of the database to connect to and where the publication state will be changed.
    type: str

name:
    description:
    - Name of the publication to add, update, or remove.
    required: true
    type: str

port:
    aliases:
    - login_port
    default: 5432
    description:
    - Database port to connect to.
    type: int

owner:
    description:
    - Publication owner.
    - If I(owner) is not defined, the owner will be set as I(login_user) or I(session_role).
    type: str

state:
    choices:
    - absent
    - present
    default: present
    description:
    - The publication state.
    type: str

tables:
    description:
    - List of tables to add to the publication.
    - If no value is set all tables are targeted.
    - If the publication already exists for specific tables and I(tables) is not passed,
      nothing will be changed. If you need to add all tables to the publication with the
      same name, drop existent and create new without passing I(tables).
    elements: str
    type: list

ca_cert:
    aliases:
    - ssl_rootcert
    description:
    - Specifies the name of a file containing SSL certificate authority (CA) certificate(s).
    - If the file exists, the server's certificate will be verified to be signed by one
      of these authorities.
    type: str

cascade:
    default: false
    description:
    - Drop publication dependencies. Has effect with I(state=absent) only.
    type: bool

ssl_mode:
    choices:
    - allow
    - disable
    - prefer
    - require
    - verify-ca
    - verify-full
    default: prefer
    description:
    - Determines whether or with what priority a secure SSL TCP/IP connection will be
      negotiated with the server.
    - See U(https://www.postgresql.org/docs/current/static/libpq-ssl.html) for more information
      on the modes.
    - Default of C(prefer) matches libpq default.
    type: str

login_host:
    default: ''
    description:
    - Host running the database.
    - If you have connection issues when using C(localhost), try to use C(127.0.0.1) instead.
    type: str

login_user:
    default: postgres
    description:
    - The username this module should use to establish its PostgreSQL session.
    type: str

parameters:
    description:
    - Dictionary with optional publication parameters.
    - Available parameters depend on PostgreSQL version.
    type: dict

login_password:
    default: ''
    description:
    - The password this module should use to establish its PostgreSQL session.
    type: str

login_unix_socket:
    default: ''
    description:
    - Path to a Unix domain socket for local connections.
    type: str

Outputs

alltables:
  description:
  - Flag indicates that all tables are published.
  returned: if publication exists
  sample: false
  type: bool
exists:
  description:
  - Flag indicates the publication exists or not at the end of runtime.
  returned: always
  sample: true
  type: bool
owner:
  description: Owner of the publication at the end of runtime.
  returned: if publication exists
  sample: alice
  type: str
parameters:
  description: Publication parameters at the end of runtime.
  returned: if publication exists
  sample:
    publish:
      delete: false
      insert: false
      update: true
  type: dict
queries:
  description: List of executed queries.
  returned: always
  sample:
  - DROP PUBLICATION "acme" CASCADE
  type: str
tables:
  description:
  - List of tables in the publication at the end of runtime.
  - If all tables are published, returns empty list.
  returned: if publication exists
  sample:
  - '"public"."prices"'
  - '"public"."vehicles"'
  type: list

See also