Ansible-role-postgresql: postgres n'est pas en mesure de se connecter pour vérifier l'existence de la base de données

Créé le 6 févr. 2019  ·  18Commentaires  ·  Source: geerlingguy/ansible-role-postgresql

Je ne suis pas sûr de comprendre comment ou pourquoi l'utilisateur postgres n'est pas en mesure de se connecter pour vérifier que la base de données existe ou non, mais le Playbook suivant...

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

Donnez les erreurs suivantes :

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

Je ne sais pas si c'est censé utiliser l'utilisateur postgres ou l'utilisateur que j'ai créé, concourse dans ce cas.

Fichier d'exigences Ansible-Galaxy

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

Informations sur le système cible

[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

Versions Ansible et 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

Commentaire le plus utile

J'ai eu le même problème aujourd'hui avec la version ansible galaxy

Tous les 18 commentaires

Le changement de databases.yml et users.yml a généré de nouvelles erreurs.

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 Je viens de tester ceci au cas où vous vous poseriez la question :

Cela se produit car les utilisateurs sont créés avant les bases de données. Ainsi, lorsque vous créez un utilisateur et référencez une base de données, il n'y a pas de base de données à référencer et des erreurs se produisent

Et puis vous créez une base de données pour référencer un utilisateur - eh bien, il n'y a pas d'utilisateur. Vous devez d'abord créer un utilisateur sans référence de base de données, puis créer le fichier db.

Ce problème a été marqué « obsolète » en raison du manque d'activité récente. S'il n'y a plus d'activité, le problème sera clos dans 30 jours. Nous vous remercions de votre contribution!

Veuillez lire cet article de blog pour voir les raisons pour lesquelles je marque les problèmes comme obsolètes.

J'ai eu le même problème aujourd'hui avec la version ansible galaxy

Ce problème n'est plus marqué pour clôture.

Ce problème a été marqué « obsolète » en raison du manque d'activité récente. S'il n'y a plus d'activité, le problème sera clos dans 30 jours. Nous vous remercions de votre contribution!

Veuillez lire cet article de blog pour voir les raisons pour lesquelles je marque les problèmes comme obsolètes.

Connaissant le même problème aussi

Ce problème n'est plus marqué pour clôture.

Ce problème a été marqué « obsolète » en raison du manque d'activité récente. S'il n'y a plus d'activité, le problème sera clos dans 30 jours. Nous vous remercions de votre contribution!

Veuillez lire cet article de blog pour voir les raisons pour lesquelles je marque les problèmes comme obsolètes.

pas éventé

Ce problème n'est plus marqué pour clôture.

Ce problème a été marqué « obsolète » en raison du manque d'activité récente. S'il n'y a plus d'activité, le problème sera clos dans 30 jours. Nous vous remercions de votre contribution!

Veuillez lire cet article de blog pour voir les raisons pour lesquelles je marque les problèmes comme obsolètes.

pas éventé

Ce problème n'est plus marqué pour clôture.

Je rencontrais un problème similaire avec l'échec suivant
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}

Je vous recommande d'essayer de définir postgres_users_no_log: false sur votre fichier de variables et de voir de quoi il s'agit. Dans mon cas, c'était lié à la dépendance psycopg2 (que j'étais déjà en train d'installer avec python3-psycopg2 , mais il manquait ansible_python_interpreter: /usr/bin/python3 sur mes variables)

Ce problème a été marqué « obsolète » en raison du manque d'activité récente. S'il n'y a plus d'activité, le problème sera clos dans 30 jours. Nous vous remercions de votre contribution!

Veuillez lire cet article de blog pour voir les raisons pour lesquelles je marque les problèmes comme obsolètes.

Ce problème a été fermé pour cause d'inactivité. Si vous pensez qu'il s'agit d'une erreur, veuillez rouvrir le problème ou déposer un nouveau problème avec les détails pertinents.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

GoodBoy962 picture GoodBoy962  ·  10Commentaires

breml picture breml  ·  9Commentaires

svanschalkwyk picture svanschalkwyk  ·  6Commentaires

NiftyMist picture NiftyMist  ·  5Commentaires

worldofchris picture worldofchris  ·  8Commentaires