PostgreSQL Set
Resumo
- Modifica parâmetros de configurações de um servidor PostgreSQL.
- O módulo usa o comando ALTER SYSTEM e aplica as mudanças recarregando a configuração do servidor.
- ALTER SYSTEM é usado para alterar os parâmetros de configuração do servidor em todo o cluster de banco de dados.
- Pode ser mais conveniente e seguro do que o método tradicional de editar manualmente o arquivo postgresql.conf.
- O módulo permite redefinir o parâmetro para boot_val (valor inicial do cluster) por reset=yes ou remover a string do parâmetro de postgresql.auto.conf e reload value=default (para configurações com contexto postmaster é necessário reiniciar).
Parâmetros
Parâmetro | Tipo | Escolhas | Valores padrão | Comentários |
|---|---|---|---|
db | string | | Nome do banco de dados ao qual se conectar. aliases: login_db |
name | string | | Nome do parâmetro do servidor PostgreSQL. |
reset | boolean | Escolhas:
| Restaure o parâmetro ao estado inicial (boot_val). Mutuamente exclusivo com value. |
session_role | string | | Alterna 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 se logado originalmente. |
trust_input | boolean | Escolhas:
| Caso use 'no', verifica se os valores dos parâmetros são potencialmente perigosos. Faz sentido usar não apenas quando as injeções de SQL são possíveis. |
value | string | | Valor de parâmetro a ser definido. Para remover a string de parâmetro de postgresql.auto.conf e recarregar a configuração do servidor, você deve passar value=default. Com value=default, o manual sempre retorna alterado é verdadeiro. |
Extende fragmentos da documentação do módulo PostgreSQL Base
Notas
- A versão com suporte do PostgreSQL é 9.4 e posterior.
- Atenção! Alterar a configuração com o contexto 'postmaster' pode retornar alterado como verdadeiro quando na verdade nada muda porque o mesmo valor pode ser apresentado em várias formas diferentes, por exemplo, 1024 MB, 1 GB, etc. No entanto, na visão do sistema pg_settings pode ser definido como 131072 número de páginas de 8kB. A verificação final do valor do parâmetro não pode compará-lo porque o servidor não foi reiniciado e o valor em pg_settings ainda não foi atualizado.
- Para alguns parâmetros, é necessário reiniciar o servidor PostgreSQL. Veja a documentação oficial https://www.postgresql.org/docs/current/view-pg-settings.html.
- 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.
- O parâmetro ca_cert requer pelo menos Postgres versão 8.4.
Exemplos
- name: Restaura o parâmetro wal_keep_segments ao estado inicial
postgresql_set:
name: wal_keep_segments
reset: yes
# Defina o parâmetro work_mem para 32 MB e mostre o que foi alterado e reinicie é necessário ou não
# (exemplo de saída: "msg": "work_mem 4 MB >> 64 MB restart_req: False")
- name: Defina o parâmetro de memória de trabalho
postgresql_set:
name: work_mem
value: 32mb
register: set
- name: Defina o parâmetro log_min_duration_statement para 1 segundo
postgresql_set:
name: log_min_duration_statement
value: 1s
- name: Defina o parâmetro wal_log_hints para o valor padrão (remova o parâmetro de postgresql.auto.conf)
postgresql_set:
name: wal_log_hints
value: defaultValores retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
context | string | sempre | Contexto de configuração do PostgreSQL. Exemplo: user |
name | string | sempre | Nome do parâmetro do servidor PostgreSQL. Exemplo: shared_buffers |
prev_val_pretty | string | sempre | Informações sobre o estado anterior do parâmetro. Exemplo: 4MB |
restart_required | boolean | sempre | Informações sobre necessidade de reinício. Exemplo: True |
value | dictionary | sempre | Dicionário que contém o valor do parâmetro atual (no momento do término do playbook). Preste atenção que, para uma mudança real, é necessário reiniciar alguns parâmetros do servidor PostgreSQL. Retorna o valor atual no modo de verificação. Exemplo: {'unit': 'b', 'value': 67108864} |
value_pretty | string | sempre | Informações sobre o estado atual do parâmetro. Exemplo: 64MB |