Ansible-role-postgresql: postgres no puede iniciar sesión para verificar la existencia de la base de datos

Creado en 6 feb. 2019  ·  18Comentarios  ·  Fuente: geerlingguy/ansible-role-postgresql

No estoy seguro de entender cómo o por qué el usuario postgres no puede iniciar sesión para verificar que la base de datos existe o no, pero el siguiente Playbook ...

---
- 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
...

Dar los siguientes errores:

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

No estoy seguro de si se supone que debe usar postgres usuario o el usuario que creé, concourse en este caso.

Archivo de requisitos de Ansible-Galaxy

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

Información del 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

Versiones de Ansible y 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

Comentario más útil

Tuve el mismo problema hoy con la versión ansible galaxy

Todos 18 comentarios

El cambio de database.yml y users.yml produjo nuevos errores.

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 Acabo de probar esto en caso de que se esté preguntando:

Esto ocurre porque los usuarios se crean antes que las bases de datos. Entonces, cuando crea un usuario y hace referencia a una base de datos, no hay una base de datos a la que hacer referencia y genera errores

Y luego crea una base de datos para hacer referencia a un usuario, bueno, no hay ningún usuario. Primero debe crear un usuario sin referencia de db, luego crear el db.

Este problema se ha marcado como "obsoleto" debido a la falta de actividad reciente. Si no hay más actividad, el problema se cerrará en otros 30 días. ¡Gracias por tu contribución!

Lea esta publicación de blog para ver las razones por las que marco los problemas como obsoletos.

Tuve el mismo problema hoy con la versión ansible galaxy

Este problema ya no está marcado para cierre.

Este problema se ha marcado como "obsoleto" debido a la falta de actividad reciente. Si no hay más actividad, el problema se cerrará en otros 30 días. ¡Gracias por tu contribución!

Lea esta publicación de blog para ver las razones por las que marco los problemas como obsoletos.

Experimentando el mismo problema también

Este problema ya no está marcado para cierre.

Este problema se ha marcado como "obsoleto" debido a la falta de actividad reciente. Si no hay más actividad, el problema se cerrará en otros 30 días. ¡Gracias por tu contribución!

Lea esta publicación de blog para ver las razones por las que marco los problemas como obsoletos.

no rancio

Este problema ya no está marcado para cierre.

Este problema se ha marcado como "obsoleto" debido a la falta de actividad reciente. Si no hay más actividad, el problema se cerrará en otros 30 días. ¡Gracias por tu contribución!

Lea esta publicación de blog para ver las razones por las que marco los problemas como obsoletos.

no rancio

Este problema ya no está marcado para cierre.

Estaba experimentando un problema similar con el siguiente error
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}

Te recomiendo que pruebes a configurar postgres_users_no_log: false en tu archivo de variables y veas de qué se trata el error. En mi caso, estaba relacionado con la dependencia psycopg2 (que ya estaba instalando con python3-psycopg2 , pero faltaba ansible_python_interpreter: /usr/bin/python3 en mis variables)

Este problema se ha marcado como "obsoleto" debido a la falta de actividad reciente. Si no hay más actividad, el problema se cerrará en otros 30 días. ¡Gracias por tu contribución!

Lea esta publicación de blog para ver las razones por las que marco los problemas como obsoletos.

Este problema se ha cerrado por inactividad. Si cree que se trata de un error, vuelva a abrir el problema o presente un nuevo problema con los detalles relevantes.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

worldofchris picture worldofchris  ·  8Comentarios

NiftyMist picture NiftyMist  ·  5Comentarios

GoodBoy962 picture GoodBoy962  ·  10Comentarios

breml picture breml  ·  9Comentarios

svanschalkwyk picture svanschalkwyk  ·  6Comentarios