community.general.postgresql_subscription – Add, update, or remove PostgreSQL subscription
community.general.postgresql_subscription – Add, update, or remove PostgreSQL subscription
Note
This plugin is part of the community.general collection (version 1.3.2).
To install it use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.postgresql_subscription
.
New in version 0.2.0: of community.general
Synopsis
- Add, update, or remove PostgreSQL subscription.
Requirements
The below requirements are needed on the host that executes this module.
- psycopg2
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
ca_cert string |
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.
| |
cascade boolean |
|
Drop subscription dependencies. Has effect with state=absent only. Ignored when state is not |
connparams dictionary |
The connection dict param-value to connect to the publisher. For more information see https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING. Ignored when state is not | |
db string / required |
Name of the database to connect to and where the subscription state will be changed.
| |
login_host string |
Host running the database. | |
login_password string |
The password used to authenticate with. | |
login_unix_socket string |
Path to a Unix domain socket for local connections. | |
login_user string |
Default: "postgres" |
The username used to authenticate with. |
name string / required |
Name of the subscription to add, update, or remove. | |
owner string |
Subscription owner. If owner is not defined, the owner will be set as login_user or session_role. Ignored when state is not | |
port integer |
Default: 5432 |
Database port to connect to.
|
publications list / elements=string |
The publication names on the publisher to use for the subscription. Ignored when state is not | |
session_role string added in 0.2.0 of community.general |
Switch to session_role after connecting. The specified session_role must be a role that the current login_user is a member of. Permissions checking for SQL commands is carried out as though the session_role were the one that had logged in originally. | |
ssl_mode string |
|
Determines whether or with what priority a secure SSL TCP/IP connection will be negotiated with the server. See https://www.postgresql.org/docs/current/static/libpq-ssl.html for more information on the modes. Default of |
state string |
|
The subscription state.
For more information about |
subsparams dictionary |
Dictionary of optional parameters for a subscription, e.g. copy_data, enabled, create_slot, etc. For update the subscription allowed keys are See available parameters to create a new subscription on https://www.postgresql.org/docs/current/sql-createsubscription.html. Ignored when state is not | |
trust_input boolean added in 0.2.0 of community.general |
|
If It makes sense to use |
Notes
Note
- PostgreSQL version must be 10 or greater.
- The default authentication assumes that you are either logging in as or sudo’ing to the
postgres
account on the host. - To avoid “Peer authentication failed for user postgres” error, use postgres user as a become_user.
- This module uses psycopg2, a Python PostgreSQL database adapter. You must ensure that psycopg2 is installed on the host before using this module.
- If the remote host is the PostgreSQL server (which is the default case), then PostgreSQL must also be installed on the remote host.
- For Ubuntu-based systems, install the postgresql, libpq-dev, and python-psycopg2 packages on the remote host before using this module.
- The ca_cert parameter requires at least Postgres version 8.4 and psycopg2 version 2.4.3.
See Also
See also
- community.general.postgresql_publication
- The official documentation on the community.general.postgresql_publication module.
- community.general.postgresql_info
- The official documentation on the community.general.postgresql_info module.
- CREATE SUBSCRIPTION reference
- Complete reference of the CREATE SUBSCRIPTION command documentation.
- ALTER SUBSCRIPTION reference
- Complete reference of the ALTER SUBSCRIPTION command documentation.
- DROP SUBSCRIPTION reference
- Complete reference of the DROP SUBSCRIPTION command documentation.
Examples
- name: >
Create acme subscription in mydb database using acme_publication and
the following connection parameters to connect to the publisher.
Set the subscription owner as alice.
community.general.postgresql_subscription:
db: mydb
name: acme
state: present
publications: acme_publication
owner: alice
connparams:
host: 127.0.0.1
port: 5432
user: repl
password: replpass
dbname: mydb
- name: Assuming that acme subscription exists, try to change conn parameters
community.general.postgresql_subscription:
db: mydb
name: acme
connparams:
host: 127.0.0.1
port: 5432
user: repl
password: replpass
connect_timeout: 100
- name: Refresh acme publication
community.general.postgresql_subscription:
db: mydb
name: acme
state: refresh
- name: Drop acme subscription from mydb with dependencies (cascade=yes)
community.general.postgresql_subscription:
db: mydb
name: acme
state: absent
cascade: yes
- name: Assuming that acme subscription exists and enabled, disable the subscription
community.general.postgresql_subscription:
db: mydb
name: acme
state: present
subsparams:
enabled: no
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
exists boolean |
always |
Flag indicates the subscription exists or not at the end of runtime.
Sample: True |
final_state dictionary |
always |
Subscription configuration at the end of runtime.
Sample: {'conninfo': {}, 'enabled': True, 'owner': 'postgres', 'slotname': 'test', 'synccommit': True} |
initial_state dictionary |
always |
Subscription configuration at the beginning of runtime.
Sample: {'conninfo': {}, 'enabled': True, 'owner': 'postgres', 'slotname': 'test', 'synccommit': True} |
name string |
always |
Name of the subscription.
Sample: acme |
queries string |
always |
List of executed queries.
Sample: ['DROP SUBSCRIPTION "mysubscription"'] |
Authors
- Andrew Klychkov (@Andersson007) <[email protected]>
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/postgresql_subscription_module.html