PostgreSQL Info
Resumo
- Obtém informações sobre servidores PostgreSQL
Parâmetros
Parâmetro | Tipo | Escolhas | Valor padrão | Comentários |
|---|---|---|---|
db | string | | Nome do banco de dados a ser conectado. aliases: login_db |
filter | list | | Limite as informações coletadas por string separada por vírgulas ou lista YAML. Os valores permitidos são version, databases, in_recovery, settings, tablespaces, roles, replications, repl_slots. Por padrão, coleta todos os subconjuntos. Você pode usar o caractere curinga no estilo shell (fnmatch) para passar grupos de valores (Ver exemplos). Você pode usar '!' antes do valor (por exemplo, !settings) para excluí-lo da informação. Se você passar a inclusão e exclusão de valores para o filter, por exemplo, filter=!settings,ver, os valores de exclusão serão ignorados. |
session_role | string | | Muda para session_role após conectar. O session_role especificado deve ser uma função da qual o login_user atual é membro. A verificação de permissões para comandos SQL é realizada como se o session_role fosse aquele que havia efetuado login originalmente. |
trust_input | boolean | Escolhas:
| Caso use 'no', verifica se um valor de session_role é potencialmente perigoso. Faz sentido usar no apenas quando as injeções de SQL via session_role são possíveis. |
Extende fragmentos da documentação do módulo PostgreSQL Base
Notas
- A autenticação padrão assume que você está fazendo login ou sudo na conta do postgres no host.
- Para evitar o erro “Peer authentication failed for user postgres”, use o usuário postgres como um become_user.
- Se o host remoto for o servidor PostgreSQL (que é o caso padrão), o PostgreSQL também deve ser instalado no host remoto.
- The ca_cert parameter requires at least Postgres version 8.4.
Exemplos
- name: Collect PostgreSQL version and extensions
become: yes
become_user: postgres
postgresql_info:
filter: ver*,ext*
- name: Collect all info except settings and roles
become: yes
become_user: postgres
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: yes
become_user: pgsql
postgresql_info:
db: postgres
filter:
- tablesp*
- repl_sl*
- name: Collect all info except databases
become: yes
become_user: postgres
postgresql_info:
filter:
- "!databases"
Valores retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
databases | dictionary | sempre | Informações sobre bancos de dados. Exemplo: [{'postgres': {'access_priv': '', 'collate': 'en_US.UTF-8', 'ctype': 'en_US.UTF-8', 'encoding': 'UTF8', 'owner': 'postgres', 'size': '7997 kB'}}] |
in_recovery | boolean | sempre | Indica se o serviço está em modo de recuperação ou não. |
pending_restart_settings | list | sempre | Lista de configurações com reinicialização pendente para serem definidas. Exemplo: ['shared_buffers'] |
repl_slots | dictionary | se existente | Slots de replicação (disponíveis em 9.4 e posterior) https://www.postgresql.org/docs/current/view-pg-replication-slots.html. Exemplo: {'slot0': {'active': False, 'database': None, 'plugin': None, 'slot_type': 'physical'}} |
replications | dictionary | se a pg_stat_replication view existe | Informações sobre as replicações atuais por PIDs de processo https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE. Exemplo: [{'76580': {'app_name': 'standby1', 'backend_start': '2019-02-03 00: 14: 33.908593 + 03', 'client_addr': '10 .10.10.2 ',' client_hostname ':' ' , 'state': 'streaming', 'usename': 'postgres'}}] |
roles | dictionary | sempre | Informações sobre funções https://www.postgresql.org/docs/current/user-manag.html. Exemplo: [{'test_role': {'canlogin': True, 'member_of': ['user_ro'], 'superusuário': False, 'valid_until': '9999-12-31T23: 59: 59.999999 + 00: 00'}} ] |
settings | dictionary | sempre | Informações sobre os parâmetros do servidor de tempo de execução https://www.postgresql.org/docs/current/view-pg-settings.html. Exemplo: [{'work_mem': {'boot_val': '4096', 'context': 'user', 'max_val': '2147483647', 'min_val': '64', 'setting': '8192', 'sourcefile': '/var/lib/pgsql/10/data/postgresql.auto.conf', 'unit': 'kB', 'val_in_bytes': 4194304, 'vartype': 'integer'}}] |
tablespaces | dictionary | sempre | Informações sobre tablespaces https://www.postgresql.org/docs/current/catalog-pg-tablespace.html. Exemplo: [{'test': {'spcacl': '{postgres=C/postgres,myuser=C/postgres}', 'spcoptions': ['seq_page_cost=1'], 'spcowner': 'postgres'}}] |
version | dictionary | sempre | Versão do servidor de banco de dados https://www.postgresql.org/support/versioning/. Exemplo: {'version': {'major': 10, 'minor': 6}} |
Subcampos da chave de retorno database
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
database_name | dictionary | sempre | Nome do banco de dados. Exemplo: template1 |
Subcampos da chave de retorno database_name
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
access_priv | string | sempre | Privilégios de acesso ao banco de dados. Exemplo: =c/postgres_npostgres=CTc/postgres |
collate | string | sempre | Agrupamento de banco de dados https://www.postgresql.org/docs/current/collation.html. Exemplo: en_US.UTF-8 |
ctype | string | sempre | Banco de dados LC_CTYPE https://www.postgresql.org/docs/current/multibyte.html. Exemplo: en_US.UTF-8 |
encoding | string | sempre | |
extensions | dictionary | sempre | Exemplo: [{'plpgsql': {'description': 'PL/pgSQL procedural language', 'extversion': {'major': 1, 'minor': 0}}}] |
languages | dictionary | sempre | Linguagens procedurais https://www.postgresql.org/docs/current/xplang.html. Exemplo: {'sql': {'lanacl': '', 'lanowner': 'postgres'}} |
namespaces | dictionary | sempre | Namespaces (schema) https://www.postgresql.org/docs/current/sql-createschema.html. Exemplo: {'pg_catalog': {'nspacl': '{postgres=UC/postgres,=U/postgres}', 'nspowner': 'postgres'}} |
owner | string | sempre | Proprietário do banco de dados https://www.postgresql.org/docs/current/sql-createdatabase.html. Exemplo: postgres |
publications | dictionary | se configurado | Informações sobre publicações de replicação lógica (disponíveis para PostgreSQL 10 e superior) https://www.postgresql.org/docs/current/logical-replication-publication.html. O conteúdo depende da versão do servidor PostgreSQL. Exemplo: {'pub1': {'ownername': 'postgres', 'puballtables': True, 'pubinsert': True, 'pubupdate': True}} |
size | string | sempre | Tamanho em bytes do banco de dados. Exemplo: 8189415 |
subscriptions | dictionary | se configurado | Informações sobre assinaturas de replicação (disponíveis para PostgreSQL 10 e superior) https://www.postgresql.org/docs/current/logical-replication-subscription.html. O conteúdo depende da versão do servidor PostgreSQL. Exemplo: [{'my_subscription': {'ownername': 'postgres', 'subenabled': True, 'subpublications': ['first_publication']}}] |
Subcampos da chave extensions
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
extdescription | string | se existente | Descrição da extensão. |
extversion | dictionary | sempre | Versão da extensão. |
nspname | string | sempre | Namespace onde está a extensão. Exemplo: pg_catalog |
Subcampos da chave extversion
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
major | integer | sempre | Versão principal da extensão. |
minor | integer | sempre | Versão secundária da extensão. |
Subcampos da chave languages
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
lanacl | string | sempre | Privilégios de acesso ao idioma https://www.postgresql.org/docs/current/catalog-pg-language.html. Exemplo: {postgres = UC / postgres, = U / postgres} |
lanowner | string | sempre | Proprietário do idioma https://www.postgresql.org/docs/current/catalog-pg-language.html. Exemplo: postgres. |
Subcampos da chave namespaces
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
nspacl | string | sempre | Privilégios de acesso https://www.postgresql.org/docs/current/catalog-pg-namespace.html. Exemplo: {postgres=UC/postgres, =U/postgres} |
nspowner | string | sempre | Versão Proprietário do esquema https://www.postgresql.org/docs/current/catalog-pg-namespace.html. Exemplo: postgres. |
Subcampos da chave repl_slots
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
active | boolean | sempre | True significa que um receptor se conectou a ele e atualmente está reservando arquivos. Exemplo: True |
database | string | sempre | Nome do banco de dados ao qual este slot está associado ou nulo. Exemplo: acme |
plugin | string | sempre | Nome base do objeto compartilhado que contém o plugin de saída que este slot lógico está usando, ou null para slots físicos. Exemplo: pgoutput |
slot_type | string | sempre | O tipo de slot - physical ou logical. Exemplo: logical |
Subcampos da chave replications
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
app_name | string | se existente | Nome do aplicativo conectado a este remetente WAL. Exemplo: acme_srv |
backend_start | string | sempre | Momento em que este processo foi iniciado, ou seja, quando o cliente se conectou a este remetente WAL. Exemplo: 03/02/2019 00:14:33.908593+03 |
client_addr | string | sempre | Endereço IP do cliente conectado a este remetente WAL. Se este campo for nulo, indica que o cliente está conectado por meio de um socket Unix na máquina do servidor. Exemplo: 10.0.0.101 |
client_hostname | string | sempre | Nome do host do cliente conectado, conforme relatado por uma pesquisa DNS reversa de client_addr. Este campo só será não nulo para conexões IP e apenas quando log_hostname estiver habilitado. Exemplo: dbsrv1 |
state | string | sempre | Estado atual do remetente do WAL. Exemplo: streaming |
username | string | sempre | Nome do usuário conectado a este processo de remetente do WAL ('username' é um nome de coluna na visualização pg_stat_replication). Exemplo: replication_user |
Subcampos da chave roles
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
canlogin | boolean | sempre | |
member_of | list | sempre | Associação à função https://www.postgresql.org/docs/current/role-membership.html. Exemplo: ['read_only_users'] |
superuser | boolean | sempre | Se o usuário é um superusuário ou não. |
valid_until | string | sempre | Data de expiração da senha https://www.postgresql.org/docs/current/sql-alterrole.html. Exemplo: 9999-12-31T23: 59:59.999999+00:00 |
Subcampos da chave settings
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
boot_val | string | sempre | Valor do parâmetro assumido na inicialização do servidor se o parâmetro não for definido de outra forma. Exemplo: 4096 |
context | string | sempre | Contexto necessário para definir o valor do parâmetro. Para obter mais informações, consulte https://www.postgresql.org/docs/current/view-pg-settings.html. Exemplo: user |
max_val | string | sempre | Valor máximo permitido do parâmetro (nulo para valores não numéricos). Exemplo: 2147483647 |
min_val | string | sempre | Valor mínimo permitido do parâmetro (nulo para valores não numéricos). Exemplo: 64 |
pending_start | boolean | sempre | True se o valor foi alterado no arquivo de configuração, mas precisa ser reiniciado; ou False caso contrário. Retorna apenas se as configurações forem passadas. |
pretty_val | string | sempre | Valor formatado apresentado. Exemplo: 2 MB |
setting | string | sempre | Valor atual do parâmetro. Exemplo: 49152 |
sourcefile | string | sempre | Arquivo de configuração em que o valor atual foi definido. Nulo para valores definidos de fontes diferentes dos arquivos de configuração, ou quando examinados por um usuário que não é superusuário ou membro de pg_read_all_settings. Útil ao usar diretivas de inclusão em arquivos de configuração. Exemplo: /var/lib/pgsql/10/data/postgresql.auto.conf |
unit | string | sempre | Unidade implícita do parâmetro. Exemplo: kB |
val_in_bytes | integer | se suportado | Valor atual do parâmetro em bytes. Exemplo: 2147483647 |
vartype | string | sempre | Tipo de parâmetro (bool, enum, integer, real, or string). Exemplo: integer |
Subcampos da chave tablespaces
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
spcacl | string | sempre | Privilégios de acesso ao espaço de tabela. Exemplo: {postgres=C/postgres,myuser=C/postgres} |
spcoptions | list | sempre | Opções de nível de tablespace. Exemplo: ['seq_page_cost=1'] |
spcowner | string | sempre | Proprietário do tablespace. Exemplo: test_user |
Subcampos da chave version
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
full | string | sempre | Versão completa do servidor. Exemplo: 13.2 |
major | integer | sempre | Versão principal do servidor. Exemplo: 11 |
minor | integer | sempre | Versão secundária do servidor. Exemplo: 1 |
patch | integer | se suportado | Versão modificada do servidor. Exemplo: 5 |
raw | string | sempre | Saída completa retornada por `` SELECT version () ``. Exemplo: PostgreSQL 13.2 em x86_64-pc-linux-gnu, compilado por gcc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9), 64 bits |