Ansible-role-postgresql: كيف تقوم بالتثبيت من مستودع PostgresSQL YUM

تم إنشاؤها على ١ مارس ٢٠١٨  ·  8تعليقات  ·  مصدر: geerlingguy/ansible-role-postgresql

أهلا،

أحاول استخدام هذا الدور لتثبيت 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"

هل تستطيع أن ترى ما أفعله خطأ؟

شكرا

stale

التعليق الأكثر فائدة

مرحبًا 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. نأمل أن يساعد هذا لكم.

ال 8 كومينتر

أعتقد أنني أجبت على هذا بنفسي.

جريت:

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 يومًا أخرى. شكرا لمساهمتك!

يرجى قراءة منشور المدونة هذا لمعرفة الأسباب التي تجعلني أضع علامة على المشكلات على أنها قديمة.

تم إغلاق هذه المشكلة بسبب عدم النشاط. إذا كنت تشعر أن هذا خطأ ، فالرجاء إعادة فتح المشكلة أو تقديم مشكلة جديدة مع التفاصيل ذات الصلة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات