Ansible-role-postgresql: postgres não é capaz de fazer o login para verificar a existência de banco de dados

Criado em 6 fev. 2019  ·  18Comentários  ·  Fonte: geerlingguy/ansible-role-postgresql

Não tenho certeza se entendo como ou por que o usuário postgres não é capaz de fazer o login para verificar se o banco de dados existe ou não, mas o seguinte Manual ...

---
- hosts: concourse_db
  roles:
    - role: geerlingguy.postgresql
      tags:
        - concourse_db
      vars:
        postgresql_restarted_state: "restarted"
        postgresql_service_state: started
        postgresql_service_enabled: true
        postgresql_hba_entries:
          - { type: local, database: all, user: postgres, auth_method: peer }
          - { type: local, database: all, user: all, auth_method: peer }
          - { type: host, database: all, user: all, address: '127.0.0.1/32', auth_method: md5 }
          - { type: host, database: all, user: all, address: '::1/128', auth_method: md5 }
        postgresql_locales:
          - 'en_US.UTF-8'
        postgresql_databases:
          - name: concourse
            owner: concourse
            login_user: postgres
            state: present
        postgresql_users:
          - name: concourse
            password: concoursepassword
            encrypted: true
            db: concourse
            login_user: postgres
            state: present
...

Dê os seguintes erros:

TASK [geerlingguy.postgresql : Ensure PostgreSQL is started and enabled on boot.] ***************************************************************************************************
ok: [10.144.0.137]

TASK [geerlingguy.postgresql : Ensure PostgreSQL databases are present.] ************************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ProgrammingError: role "concourse" does not exist
failed: [10.144.0.137] (item={'name': 'concourse', 'owner': 'concourse', 'login_user': 'postgres', 'state': 'present'}) => {"changed": false, "item": {"login_user": "postgres", "name": "concourse", "owner": "concourse", "state": "present"}, "msg": "Database query failed: role \"concourse\" does not exist\n"}
    to retry, use: --limit @/Users/pd028300/Documents/development/Ansible/concourse_ci_playbook/playbook_2.retry

Não tenho certeza se ele deveria estar usando postgres user ou o usuário que criei, concourse neste caso.

Arquivo de requisitos do Ansible-Galaxy

---
# https://galaxy.ansible.com/geerlingguy/postgresql
- src: geerlingguy.postgresql
  version: 1.4.5
...

Informações do sistema de destino

[email protected]:~ ( concourse-ci-db.novalocal )
12:38:42 $ uname -a
Linux concourse-ci-db.novalocal 3.10.0-957.1.3.el7.x86_64 #1 SMP Mon Nov 26 17:43:08 PST 2018 x86_64 x86_64 x86_64 GNU/Linux
[email protected]:~ ( concourse-ci-db.novalocal )
12:38:44 $ cat /etc/oracle-release
Oracle Linux Server release 7.6

Versões do Ansible e do Ansible Playbook

$ ansible --version && ansible-playbook --version
ansible 2.7.6
  config file = /Users/pd028300/Documents/development/Ansible/concourse_ci_playbook/ansible.cfg
  configured module search path = ['/Users/pd028300/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/pd028300/.pyenv/versions/3.7.2/lib/python3.7/site-packages/ansible
  executable location = /Users/pd028300/.pyenv/versions/3.7.2/bin/ansible
  python version = 3.7.2 (default, Jan 22 2019, 09:35:39) [Clang 9.0.0 (clang-900.0.39.2)]
ansible-playbook 2.7.6
  config file = /Users/pd028300/Documents/development/Ansible/concourse_ci_playbook/ansible.cfg
  configured module search path = ['/Users/pd028300/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/pd028300/.pyenv/versions/3.7.2/lib/python3.7/site-packages/ansible
  executable location = /Users/pd028300/.pyenv/versions/3.7.2/bin/ansible-playbook
  python version = 3.7.2 (default, Jan 22 2019, 09:35:39) [Clang 9.0.0 (clang-900.0.39.2)]
stale

Comentários muito úteis

Tive o mesmo problema hoje com a versão da galáxia ansible

Todos 18 comentários

A troca de databases.yml e users.yml gerou novos erros.

TASK [geerlingguy.postgresql : Ensure PostgreSQL is started and enabled on boot.] ***************************************************************************************************
ok: [10.144.0.137]

TASK [geerlingguy.postgresql : Ensure PostgreSQL users are present.] ****************************************************************************************************************
failed: [10.144.0.137] (item=None) => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}
fatal: [10.144.0.137]: FAILED! => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}

@ predatorian3 Acabei de testar isso caso você esteja se perguntando:

Isso ocorre porque os usuários são criados antes dos bancos de dados. Então, quando você cria um usuário e faz referência a um banco de dados - não há banco de dados para fazer referência e ele apresenta erros

E então você cria um banco de dados para fazer referência a um usuário - bem, não há nenhum usuário. Você deve criar um usuário primeiro sem referência de banco de dados e, em seguida, criar o banco de dados.

Este problema foi marcado como 'obsoleto' devido à falta de atividade recente. Caso não haja mais atividades, a emissão será encerrada em mais 30 dias. Obrigado pela sua contribuição!

Leia esta postagem do blog para ver os motivos pelos quais eu marco os problemas como obsoletos.

Tive o mesmo problema hoje com a versão da galáxia ansible

Este problema não está mais marcado para encerramento.

Este problema foi marcado como 'obsoleto' devido à falta de atividade recente. Caso não haja mais atividades, a emissão será encerrada em mais 30 dias. Obrigado pela sua contribuição!

Leia esta postagem do blog para ver os motivos pelos quais eu marco os problemas como obsoletos.

Enfrentando o mesmo problema também

Este problema não está mais marcado para encerramento.

Este problema foi marcado como 'obsoleto' devido à falta de atividade recente. Caso não haja mais atividades, a emissão será encerrada em mais 30 dias. Obrigado pela sua contribuição!

Leia esta postagem do blog para ver os motivos pelos quais eu marco os problemas como obsoletos.

não velho

Este problema não está mais marcado para encerramento.

Este problema foi marcado como 'obsoleto' devido à falta de atividade recente. Caso não haja mais atividades, a emissão será encerrada em mais 30 dias. Obrigado pela sua contribuição!

Leia esta postagem do blog para ver os motivos pelos quais eu marco os problemas como obsoletos.

não velho

Este problema não está mais marcado para encerramento.

Eu estava tendo um problema semelhante com a seguinte falha
TASK [geerlingguy.postgresql : Ensure PostgreSQL users are present.] ***************************** failed: [production] (item=None) => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false} fatal: [production]: FAILED! => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}

Eu recomendo que você tente definir postgres_users_no_log: false em seu arquivo de variáveis ​​e ver do que se trata o erro. No meu caso, estava relacionado à dependência psycopg2 (que eu já estava instalando com python3-psycopg2 , mas estava faltando ansible_python_interpreter: /usr/bin/python3 em minhas variáveis)

Este problema foi marcado como 'obsoleto' devido à falta de atividade recente. Caso não haja mais atividades, a emissão será encerrada em mais 30 dias. Obrigado pela sua contribuição!

Leia esta postagem do blog para ver os motivos pelos quais eu marco os problemas como obsoletos.

Este problema foi resolvido devido à inatividade. Se você acha que isso é um erro, reabra o problema ou registre um novo problema com os detalhes relevantes.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

worldofchris picture worldofchris  ·  8Comentários

svanschalkwyk picture svanschalkwyk  ·  6Comentários

breml picture breml  ·  9Comentários

GoodBoy962 picture GoodBoy962  ·  10Comentários

NiftyMist picture NiftyMist  ·  5Comentários