لست متأكدًا من أنني أفهم كيف أو لماذا لا يتمكن المستخدم postgres
من تسجيل الدخول للتحقق من وجود قاعدة البيانات أم لا ، ولكن دليل التشغيل التالي ...
---
- 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
...
اكتب الأخطاء التالية:
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
لست متأكدًا مما إذا كان من المفترض أن يستخدم المستخدم postgres
أو المستخدم الذي أنشأته ، concourse
في هذه الحالة.
ملف متطلبات Ansible-Galaxy
---
# https://galaxy.ansible.com/geerlingguy/postgresql
- src: geerlingguy.postgresql
version: 1.4.5
...
الهدف معلومات النظام
[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
إصدارات Ansible و 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)]
يبدو أنه مرتبط بهذا: PR https://github.com/geerlingguy/ansible-role-postgresql/pull/31
على هذه الأسطر:
أدى التبديل بين databases.yml و users.yml إلى أخطاء جديدة.
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 لقد اختبرت هذا للتو في حال كنت تتساءل:
يحدث هذا بسبب إنشاء المستخدمين قبل قواعد البيانات. لذلك عند إنشاء مستخدم والإشارة إلى قاعدة بيانات - لا توجد قاعدة بيانات للرجوع إليها وهي أخطاء بها
ثم تقوم بإنشاء قاعدة بيانات للإشارة إلى مستخدم - حسنًا ، لا يوجد مستخدم. يجب عليك إنشاء مستخدم أولاً بدون مرجع db ، ثم إنشاء db.
تم تصنيف هذه المشكلة على أنها "قديمة" نظرًا لنقص الأنشطة الحديثة. إذا لم يكن هناك نشاط آخر ، فسيتم إغلاق المشكلة في غضون 30 يومًا أخرى. شكرا لمساهمتك!
يرجى قراءة منشور المدونة هذا لمعرفة الأسباب التي تجعلني أضع علامة على المشكلات على أنها قديمة.
واجهت نفس المشكلة اليوم مع نسخة مجرة غير مرئية
هذه القضية لم تعد معلمة للإغلاق.
تم تصنيف هذه المشكلة على أنها "قديمة" نظرًا لنقص الأنشطة الحديثة. إذا لم يكن هناك نشاط آخر ، فسيتم إغلاق المشكلة في غضون 30 يومًا أخرى. شكرا لمساهمتك!
يرجى قراءة منشور المدونة هذا لمعرفة الأسباب التي تجعلني أضع علامة على المشكلات على أنها قديمة.
تعاني من نفس المشكلة أيضًا
هذه القضية لم تعد معلمة للإغلاق.
تم تصنيف هذه المشكلة على أنها "قديمة" نظرًا لنقص الأنشطة الحديثة. إذا لم يكن هناك نشاط آخر ، فسيتم إغلاق المشكلة في غضون 30 يومًا أخرى. شكرا لمساهمتك!
يرجى قراءة منشور المدونة هذا لمعرفة الأسباب التي تجعلني أضع علامة على المشكلات على أنها قديمة.
لا تالفة
هذه القضية لم تعد معلمة للإغلاق.
تم تصنيف هذه المشكلة على أنها "قديمة" نظرًا لنقص الأنشطة الحديثة. إذا لم يكن هناك نشاط آخر ، فسيتم إغلاق المشكلة في غضون 30 يومًا أخرى. شكرا لمساهمتك!
يرجى قراءة منشور المدونة هذا لمعرفة الأسباب التي تجعلني أضع علامة على المشكلات على أنها قديمة.
لا تالفة
هذه القضية لم تعد معلمة للإغلاق.
كنت أواجه مشكلة مماثلة مع الفشل التالي
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}
أوصيك بمحاولة تعيين postgres_users_no_log: false
في ملف المتغيرات ومعرفة سبب الخطأ. في حالتي ، كان مرتبطًا بالتبعية psycopg2
(التي كنت أقوم بتثبيتها بالفعل باستخدام python3-psycopg2
، لكنني كنت أفتقد ansible_python_interpreter: /usr/bin/python3
في المتغيرات الخاصة بي)
تم تصنيف هذه المشكلة على أنها "قديمة" نظرًا لنقص الأنشطة الحديثة. إذا لم يكن هناك نشاط آخر ، فسيتم إغلاق المشكلة في غضون 30 يومًا أخرى. شكرا لمساهمتك!
يرجى قراءة منشور المدونة هذا لمعرفة الأسباب التي تجعلني أضع علامة على المشكلات على أنها قديمة.
تم إغلاق هذه القضية بسبب عدم النشاط. إذا كنت تشعر أن هذا خطأ ، فالرجاء إعادة فتح المشكلة أو تقديم مشكلة جديدة مع التفاصيل ذات الصلة.
التعليق الأكثر فائدة
واجهت نفس المشكلة اليوم مع نسخة مجرة غير مرئية