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)]
Semble être lié à ceci: PR https://github.com/geerlingguy/ansible-role-postgresql/pull/31
sur ces lignes :
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.
Commentaire le plus utile
J'ai eu le même problème aujourd'hui avec la version ansible galaxy