أهلا،
أحاول استخدام هذا الدور لتثبيت PostgresSQL 9.6 على Centos 7.
من الجيد عمل 9.2 الموجود في المستودعات الأساسية ولكن لا يمكنني معرفة كيفية تهيئته لاستخدام مستودع PostgresSQL YUM من أجل الحصول على 9.6.
ما هي القيمة التي يجب إدخالها في المتغير postgresql_enablerepo
؟
يمكنني فقط العثور على rpms المستودع مثل https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
عندما أضع:
postgresql_enablerepo: "https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm"
ينتج عنه الخطأ:
"Error setting/accessing repos: Error getting repository data for https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm, repository not found"
هل تستطيع أن ترى ما أفعله خطأ؟
شكرا
أعتقد أنني أجبت على هذا بنفسي.
جريت:
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
ثم ابحث في /etc/yum.repos.d/pgdg-96-centos.repo
وجدت الاسم pgdg96
. أدى تعيين postgresql_enablerepo
لهذا إلى سحب postgresql96-libs
من pgdg96
لكن كل شيء آخر ( postgresql
و postgresql-contrib
إلخ) لا يزال قادمًا من updates
.
لذلك اتبعت الإرشادات الموجودة على https://wiki.postgresql.org/wiki/YUM_Installation لاستبعاد postgresql*
من base
و updates
.
ثم أعدت تشغيل كتاب اللعب بالدور وحصلت على 9.6 مثبتًا.
للقيام بذلك في Ansible ، أضفت هذه المهام المسبقة:
- ini_file:
path: /etc/yum.repos.d/CentOS-Base.repo
option: exclude
value: postgresql*
section: "{{ item }}"
with_items:
- base
- updates
- yum:
name: https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
state: present
هل هذه هي الطريقة الصحيحة للقيام بذلك أم أنني أعمل مع عدم كفاءتي؟
شكرا
مرحبًا worldofchris ، لقد واجهت نفس المشكلة أثناء محاولة تثبيت PostgreSQL 9.6 على CentOS 7 وقد جعلني نهجك يسير على الطريق الصحيح. ومع ذلك ، ما زلت أواجه بعض المشاكل لأن Postgres لم يتم تثبيته من حزم النظام. بعد عدة محاولات فاشلة ، لاحظت القسم في README الذي يتناول استخدام الحزم غير النظامية وتوصلت إلى ما يلي:
- hosts: all
gather_facts: true
pre_tasks:
- name: make selinux permissive
selinux:
policy: targeted
state: permissive
become: yes
- name: install PostgreSQL 9.6 repository
yum:
name: https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
state: present
become: yes
tasks:
- name: install system packages
yum:
name: "{{ item }}"
state: installed
with_items:
- "<strong i="7">@Development</strong> tools"
become: yes
roles:
- role: geerlingguy.postgresql
postgresql_enablerepo: "pgdg96"
postgresql_version: 9.6
postgresql_data_dir: /var/lib/pgsql/9.6/data
postgresql_bin_path: /usr/pgsql-9.6/bin
postgresql_config_path: /var/lib/pgsql/9.6/data
postgresql_daemon: postgresql-9.6.service
postgresql_packages:
- postgresql96
- postgresql96-server
- postgresql96-libs
- postgresql96-contrib
- postgresql96-devel
become: yes
اتضح أنه يجب أن تكون محددًا جدًا بشأن المتغيرات الخاصة بالإصدار ، ولكن يبدو أن كل شيء يعمل الآن ولم أضطر إلى إجراء أي تغييرات على CentOS-Base.repo. نأمل أن يساعد هذا لكم.
شكرا @ worldofchris matthiase كلاهما ساعدني بشكل كبير!
مساعدة رائعة. يجب توثيق ذلك في ويكي أو شيء من هذا القبيل
إذا أراد شخص ما تشغيل PostgreSQL 10 مع دور غير مرغوب فيه ، فقد تمكنت من تشغيله مع قواعد اللعبة التالية:
- hosts: all
pre_tasks:
- name: install PostgreSQL 10 repository
yum:
name: https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7.5-x86_64/pgdg-redhat10-10-2.noarch.rpm
state: present
become: yes
tasks:
roles:
- role: geerlingguy.postgresql
postgresql_enablerepo: "pgdg10"
postgresql_version: 10
postgresql_data_dir: /var/lib/pgsql/10/data
postgresql_bin_path: /usr/pgsql-10/bin
postgresql_config_path: /var/lib/pgsql/10/data
postgresql_daemon: postgresql-10.service
postgresql_packages:
- postgresql10
- postgresql10-server
- postgresql10-libs
- postgresql10-contrib
- postgresql10-devel
become: yes
- hosts: db
pre_tasks:
- name: install repository PostgresQL
yum:
name: https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
state: present
become: yes
become: yes
vars_files:
- /home/sane/ansible_roles/pg/geerlingguy.postgresql/defaults/main.yml
roles:
- role: geerlingguy.postgresql
postgresql_enablerepo: "pgdg11"
postgresql_version: 11
postgresql_data_dir: /var/lib/pgsql/11/data
postgresql_bin_path: /usr/pgsql-11/bin
postgresql_config_path: /var/lib/pgsql/11/data
postgresql_daemon: postgresql-11.service
postgresql_packages:
- postgresql11
- postgresql11-server
- postgresql11-libs
- postgresql11-contrib
- postgresql11-devel
become: yes
تم تصنيف هذه المشكلة على أنها "قديمة" نظرًا لنقص الأنشطة الحديثة. إذا لم يكن هناك نشاط آخر ، فسيتم إغلاق المشكلة في غضون 30 يومًا أخرى. شكرا لمساهمتك!
يرجى قراءة منشور المدونة هذا لمعرفة الأسباب التي تجعلني أضع علامة على المشكلات على أنها قديمة.
تم إغلاق هذه المشكلة بسبب عدم النشاط. إذا كنت تشعر أن هذا خطأ ، فالرجاء إعادة فتح المشكلة أو تقديم مشكلة جديدة مع التفاصيل ذات الصلة.
التعليق الأكثر فائدة
مرحبًا worldofchris ، لقد واجهت نفس المشكلة أثناء محاولة تثبيت PostgreSQL 9.6 على CentOS 7 وقد جعلني نهجك يسير على الطريق الصحيح. ومع ذلك ، ما زلت أواجه بعض المشاكل لأن Postgres لم يتم تثبيته من حزم النظام. بعد عدة محاولات فاشلة ، لاحظت القسم في README الذي يتناول استخدام الحزم غير النظامية وتوصلت إلى ما يلي:
اتضح أنه يجب أن تكون محددًا جدًا بشأن المتغيرات الخاصة بالإصدار ، ولكن يبدو أن كل شيء يعمل الآن ولم أضطر إلى إجراء أي تغييرات على CentOS-Base.repo. نأمل أن يساعد هذا لكم.