community.postgresql.postgresql_info module – Gather information about PostgreSQL servers
Note
This module is part of the community.postgresql collection (version 3.7.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.postgresql
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.postgresql.postgresql_info
.
Synopsis
Gathers information about PostgreSQL servers.
Requirements
The below requirements are needed on the host that executes this module.
psycopg2 >= 2.5.1
Parameters
Parameter |
Comments |
---|---|
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. |
|
Any additional parameters to be passed to libpg. These parameters take precedence. Default: |
|
Name of database to connect. |
|
Limit the collected information by comma separated string or YAML list. Allowable values are By default, collects all subsets. You can use shell-style (fnmatch) wildcard to pass groups of values (see Examples). You can use ‘!’ before value (for example, If you pass including and excluding values to the filter, for example, filter=!settings,ver, the excluding values will be ignored. |
|
Host running the database. If you have connection issues when using Default: |
|
The password this module should use to establish its PostgreSQL session. Default: |
|
Path to a Unix domain socket for local connections. Default: |
|
The username this module should use to establish its PostgreSQL session. Default: |
|
Database port to connect to. Default: |
|
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. |
|
Specifies the file name of the client SSL certificate. |
|
Specifies the location for the secret key used for the client certificate. |
|
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 Choices:
|
|
If It makes sense to use Choices:
|
Attributes
Attribute |
Support |
Description |
---|---|---|
Support: full |
Can run in check_mode and return changed status prediction without modifying target. |
Notes
Note
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
psycopg
, a Python PostgreSQL database adapter. You must ensure thatpsycopg2 >= 2.5.1
orpsycopg3 >= 3.1.8
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
, andpython3-psycopg2
packages on the remote host before using this module.
See Also
See also
- community.postgresql.postgresql_ping
Check remote PostgreSQL server availability.
Examples
# Display info from postgres hosts.
# ansible postgres -m postgresql_info
# Display only databases and roles info from all hosts using shell-style wildcards:
# ansible all -m postgresql_info -a 'filter=dat*,rol*'
# Display only replications and repl_slots info from standby hosts using shell-style wildcards:
# ansible standby -m postgresql_info -a 'filter=repl*'
# Display all info from databases hosts except settings:
# ansible databases -m postgresql_info -a 'filter=!settings'
- name: Collect PostgreSQL version and extensions
become: true
become_user: postgres
community.postgresql.postgresql_info:
filter: ver*,ext*
- name: Collect all info except settings and roles
become: true
become_user: postgres
community.postgresql.postgresql_info:
filter: "!settings,!roles"
# On FreeBSD with PostgreSQL 9.5 version and lower use pgsql user to become
# and pass "postgres" as a database to connect to
- name: Collect tablespaces and repl_slots info
become: true
become_user: pgsql
community.postgresql.postgresql_info:
db: postgres
filter:
- tablesp*
- repl_sl*
- name: Collect all info except databases
become: true
become_user: postgres
community.postgresql.postgresql_info:
filter:
- "!databases"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
Information about databases. Returned: success Sample: |
|
Database name. Returned: success Sample: |
|
Database access privileges. Returned: success Sample: |
|
Database collation https://www.postgresql.org/docs/current/collation.html. Returned: success Sample: |
|
Database LC_CTYPE https://www.postgresql.org/docs/current/multibyte.html. Returned: success Sample: |
|
Database encoding https://www.postgresql.org/docs/current/multibyte.html. Returned: success Sample: |
|
Extensions https://www.postgresql.org/docs/current/sql-createextension.html. Returned: success Sample: |
|
Extension description. Returned: if existent Sample: |
|
Extension description. Returned: success |
|
Extension major version. Returned: success Sample: |
|
Extension minor version. Returned: success Sample: |
|
Extension full version. Returned: success Sample: |
|
Namespace where the extension is. Returned: success Sample: |
|
Database ICU_LOCALE https://www.postgresql.org/docs/current/locale.html#ICU-LOCALES. Returned: success Sample: |
|
Procedural languages https://www.postgresql.org/docs/current/xplang.html. Returned: success Sample: |
|
Language access privileges https://www.postgresql.org/docs/current/catalog-pg-language.html. Returned: success Sample: |
|
Language owner https://www.postgresql.org/docs/current/catalog-pg-language.html. Returned: success Sample: |
|
Database LOCALE_PROVIDER https://www.postgresql.org/docs/current/locale.html#LOCALE-PROVIDERS. Returned: success Sample: |
|
Namespaces (schema) https://www.postgresql.org/docs/current/sql-createschema.html. Returned: success Sample: |
|
Access privileges https://www.postgresql.org/docs/current/catalog-pg-namespace.html. Returned: success Sample: |
|
Schema owner https://www.postgresql.org/docs/current/catalog-pg-namespace.html. Returned: success Sample: |
|
Database owner https://www.postgresql.org/docs/current/sql-createdatabase.html. Returned: success Sample: |
|
Information about logical replication publications (available for PostgreSQL 10 and higher) https://www.postgresql.org/docs/current/logical-replication-publication.html. Content depends on PostgreSQL server version. Returned: if configured Sample: |
|
Database size in bytes. Returned: success Sample: |
|
Information about replication subscriptions (available for PostgreSQL 10 and higher) https://www.postgresql.org/docs/current/logical-replication-subscription.html. Content depends on PostgreSQL server version. The return values for the superuser and the normal user may differ https://www.postgresql.org/docs/current/catalog-pg-subscription.html. Returned: if configured Sample: |
|
Indicates if the service is in recovery mode or not. Returned: success Sample: |
|
List of settings that are pending restart to be set. Returned: success Sample: |
|
Replication slots (available in 9.4 and later) https://www.postgresql.org/docs/current/view-pg-replication-slots.html. Returned: if existent Sample: |
|
True means that a receiver has connected to it, and it is currently reserving archives. Returned: success Sample: |
|
Database name this slot is associated with, or null. Returned: success Sample: |
|
Base name of the shared object containing the output plugin this logical slot is using, or null for physical slots. Returned: success Sample: |
|
The slot type - physical or logical. Returned: success Sample: |
|
Information about the current replications by process PIDs https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE. Returned: if pg_stat_replication view existent Sample: |
|
Name of the application that is connected to this WAL sender. Returned: if existent Sample: |
|
Time when this process was started, i.e., when the client connected to this WAL sender. Returned: success Sample: |
|
IP address of the client connected to this WAL sender. If this field is null, it indicates that the client is connected via a Unix socket on the server machine. Returned: success Sample: |
|
Host name of the connected client, as reported by a reverse DNS lookup of client_addr. This field will only be non-null for IP connections, and only when log_hostname is enabled. Returned: success Sample: |
|
Current WAL sender state. Returned: success Sample: |
|
Name of the user logged into this WAL sender process (‘usename’ is a column name in pg_stat_replication view). Returned: success Sample: |
|
Information about roles https://www.postgresql.org/docs/current/user-manag.html. Returned: success Sample: |
|
Login privilege https://www.postgresql.org/docs/current/role-attributes.html. Returned: success Sample: |
|
Role membership https://www.postgresql.org/docs/current/role-membership.html. Returned: success Sample: |
|
User is a superuser or not. Returned: success Sample: |
|
Password expiration date https://www.postgresql.org/docs/current/sql-alterrole.html. Returned: success Sample: |
|
Information about run-time server parameters https://www.postgresql.org/docs/current/view-pg-settings.html. Returned: success Sample: |
|
Parameter value assumed at server startup if the parameter is not otherwise set. Returned: success Sample: |
|
Context required to set the parameter’s value. For more information see https://www.postgresql.org/docs/current/view-pg-settings.html. Returned: success Sample: |
|
Maximum allowed value of the parameter (null for non-numeric values). Returned: success Sample: |
|
Minimum allowed value of the parameter (null for non-numeric values). Returned: success Sample: |
|
True if the value has been changed in the configuration file but needs a restart; or false otherwise. Returns only if Returned: success Sample: |
|
Value presented in the pretty form. Returned: success Sample: |
|
Current value of the parameter. Returned: success Sample: |
|
Configuration file the current value was set in. Null for values set from sources other than configuration files, or when examined by a user who is neither a superuser or a member of pg_read_all_settings. Helpful when using include directives in configuration files. Returned: success Sample: |
|
Implicit unit of the parameter. Returned: success Sample: |
|
Current value of the parameter in bytes. Returned: if supported Sample: |
|
Parameter type (bool, enum, integer, real, or string). Returned: success Sample: |
|
Information about tablespaces https://www.postgresql.org/docs/current/catalog-pg-tablespace.html. Returned: success Sample: |
|
Tablespace access privileges. Returned: success Sample: |
|
Tablespace-level options. Returned: success Sample: |
|
Owner of the tablespace. Returned: success Sample: |
|
Database server version https://www.postgresql.org/support/versioning/. Returned: success Sample: |
|
Full server version. Returned: success Sample: |
|
Major server version. Returned: success Sample: |
|
Minor server version. Returned: success Sample: |
|
Patch server version. Returned: if supported Sample: |
|
Full output returned by ``SELECT version()``. Returned: success Sample: |