ترقية البوابة

يوضِّح هذا الإجراء كيفية ترقية بوابة خدمات مطوّري برامج Apigee الحالية (أو ببساطة، البوابة) في المؤسسة.

تحديد إجراء التحديث الصحيح

يعتمد الإجراء الذي تستخدمه لتحديث البوابة على عملية التثبيت الحالية:

تحديد نوع التثبيت الحالي

إذا لم تكن متأكّدًا من نوع التثبيت الحالي، استخدِم الأمر التالي لتحديده:

  • ls /opt

    إذا كنت تستخدم Nginx/Postgres، سترى الأدلة التالية: /opt/apigee و/opt/nginx.

    في حال استخدام Apache/MySQL أو Apache/MariaDB، يجب عدم توفُّر هذه الأدلة.

  • /opt/apigee/apigee-service/bin/apigee-all status

    إذا كنت تستخدم Nginx/Postgres، سيظهر لك الناتج التالي:

    + apigee-service
    apigee-drupal-devportal status
    OK: apigee-drupal-devportal is up and running
    + apigee-service apigee-lb status
    apigee-service: apigee-lb: OK
    + apigee-service apigee-postgresql status
    apigee-service: apigee-postgresql: OK
  • apachectl -S

    إذا كنت تستخدم Apache/MySQL أو Apache/MariaDB، من المفترض أن يعرض هذا الأمر الدليل الجذري الخاص بالويب للبوابة، بالشكل التالي:

    *:80
    192.168.56.102 (/etc/httpd/conf/vhosts/devportal.conf:1)

دليل التثبيت التلقائي

تفترض عملية الترقية أنّه تم تثبيت البوابة في:

  • 4.17.05 والإصدارات الأحدث: /opt/apigee/apigee-drupal/wwwroot
  • قبل الإصدار 4.17.05: /opt/apigee/apigee-drupal (Nginx) أو /var/www/html (Apache)

إذا لم تثبِّت البوابة في الدليل التلقائي، عدِّل المسارات في الإجراء أدناه لاستخدام دليل التثبيت.

إصدارات الترقية المتوافقة

يتم دعم إجراء الترقية هذا في إصدارات البوابة OPDK-17-01.x والإصدارات الأحدث.

لتحديد إصدار البوابة، افتح عنوان URL التالي في متصفّح:

http://yourportal.com/buildInfo

.

قبل التحديث

بالنسبة إلى عمليات التثبيت الحالية، إذا عدّلت أي رمز في Drupal Core أو في أي وحدات غير مخصّصة، سيتم استبدال تعديلاتك. يشمل ذلك، من بين أمور أخرى، أي تغييرات أجريتها على .htaccess. عليك افتراض أنّ تطبيق Drupal يملك أي محتوى خارج الدليل /sites. ويُستثنى من هذه القاعدة robots.txt، لأنّه إذا كان هذا الملف متوفرًا في جذر الويب، سيتم حفظه لك.

قبل متابعة التثبيت، احتفظ بنسخة احتياطية من دليلك الأساسي على الويب في Drupal. بعد تنفيذ خطوات التثبيت الموضحة أدناه، يمكنك استعادة تخصيصاتك من النسخة الاحتياطية.

ترقية البوابة باستخدام RPM

لتعديل العائد لكل ألف ظهور للبوابة على عقدة:

  1. يمكنك التغيير إلى دليل Drupal، /opt/apigee/apigee-drupal تلقائيًا:
    cd /opt/apigee/apigee-drupal
  2. الاحتفاظ بنسخة احتياطية من مثيل قاعدة بيانات Drupal ينشئ الأمر pg_dump نسخة من قاعدة البيانات:
    pg_dump --dbname=devportal --host=host_IP_address --username=drupaladmin
      --password --format=c > /tmp/portal.dmp

    المكان:

    • devportal هو اسم قاعدة البيانات كما هو محدّد في السمة PG_NAME في ملف إعداد تثبيت البوابة.
    • host_IP_address هو عنوان IP لعقدة البوابة.
    • drupaladmin هو اسم مستخدم Postgres الذي تستخدمه البوابة للوصول إلى قاعدة البيانات كما هو محدّد في السمة DRUPAL_PG_USER في ملف إعداد تثبيت البوابة.

    سيُطلب منك إدخال كلمة مرور مستخدم Postgres كما هو موضّح في السمة DRUPAL_PG_PASS في ملف إعداد تثبيت البوابة.

    إذا أردت الاستعادة من النسخة الاحتياطية لاحقًا، استخدِم الأمر التالي:

    pg_restore --clean --dbname=devportal --host=localhost  --username=apigee < /tmp/portal.dmp
  3. أنشِئ نسخة احتياطية من دليلك الأساسي على الويب في Drupal. الموقع الجغرافي التلقائي للتثبيت هو /opt/apigee/apigee-drupal، ولكن يُحتمَل أنّك غيّرته.

    إذا لم تكن متأكّدًا من الموقع الجغرافي لهذا الدليل، استخدِم الأمر drush status أو الإدخال Configuration > Media > File في قائمة Drupal لتحديد موقع نظام الملفات العلني ومسار نظام الملفات الخاصة (للخطوة التالية).

  4. احتفظ بنسخة احتياطية من الملفات في /opt/apigee/data/apigee-drupal-devportal/private.
  5. اضبط Drupal على وضع الصيانة:
    1. اختَر الضبط في قائمة Drupal.
    2. في صفحة الإعدادات، اختَر وضع الصيانة ضمن التطوير.
    3. انقر على المربّع وضع الموقع في وضع الصيانة.
    4. أدخِل رسالة تظهر للمستخدمين أثناء الصيانة.
    5. اختَر حفظ الإعدادات.
  6. أوقِف SELinux كما هو موضح في تثبيت الأداة المساعدة لإعداد واجهة برمجة تطبيقات Edge.
  7. التغيير إلى دليل /opt:
    cd /opt
  8. لترقية خادم متّصل بالإنترنت:
    1. نزِّل ملف bootstrap_4.19.06.sh لبرنامج Edge 4.19.06 إلى /tmp/bootstrap_4.19.06.sh:
      curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
    2. تثبيت الأداة المساعدة Edge 4.19.06 apigee-service والتبعيات:
      sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord

      يكون uName وpWord هما اسم المستخدم وكلمة المرور اللذان تلقّيتهما من Apigee. إذا لم تستخدم pWord، سيُطلب منك إدخاله.

      تتحقّق أداة التثبيت تلقائيًا من تثبيت Java 1.8. يمكنك استخدام الخيار "C" للمتابعة بدون تثبيت Java.

  9. لترقية خادم غير متصل بالإنترنت:
    1. أنشِئ مستودع 4.19.06 محليًا كما هو موضَّح في إنشاء مستودع Apigee محلي.
    2. لتثبيت apigee-service من ملف .tar:
      1. في العقدة التي تتضمّن ريبو المحلي، استخدِم الأمر التالي لتجميع repo المحلي في ملف .tar واحد باسم /opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz:
        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. انسخ ملف .tar إلى العقدة التي تريد تحديث Edge فيها. على سبيل المثال، انسخها إلى الدليل /tmp على العقدة الجديدة.
      3. في العقدة الجديدة، أزِل الملف إلى الدليل /tmp:
        tar -xzf apigee-4.19.06.tar.gz

        ينشئ هذا الأمر دليلاً جديدًا باسم repos في الدليل الذي يحتوي على ملف .tar. على سبيل المثال /tmp/repos.

      4. ثبِّت الأداة apigee-service لبرنامج Edge والتبعيات من /tmp/repos:
        sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        لاحظ أنك تقوم بتضمين المسار إلى دليل repos في هذا الأمر.

    3. لتثبيت خدمة apigee باستخدام خادم الويب Nginx:
      1. اضبط خادم الويب Nginx كما هو موضّح في القسم "التثبيت من المخزن باستخدام خادم الويب Nginx" في تثبيت الأداة المساعدة لإعداد واجهة برمجة تطبيقات Edge.
      2. في العقدة البعيدة، نزِّل ملف Edge bootstrap_4.19.06.sh إلى /tmp/bootstrap_4.19.06.sh:
        /usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.19.06.sh
          -o /tmp/bootstrap_4.19.06.sh

        حيث يكون uName وpWord هما اسم المستخدم وكلمة المرور اللذَين تم ضبطهما أعلاه للمستودع، وremoteRepo هو عنوان IP أو اسم نظام أسماء النطاقات لعقدة الريبو.

      3. في العقدة البعيدة، ثبِّت الأداة apigee-service Edge والتبعيات:
        sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939
          apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        يكون uName وpWord هما اسم المستخدم وكلمة المرور الخاصَّين بالمستودع.

  10. استخدِم apigee-service لتحديث أداة apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  11. شغِّل الأداة update على عقدة Postgres:
    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    يكون configFile هو ملف الإعداد الذي استخدمته لتثبيت قاعدة بيانات Postgres. الشرط الوحيد في ملف الإعداد هو أن يتمكن مستخدم "apigee" من الوصول إلى ملف الإعداد أو قراءته.

  12. عليك إزالة تبعيات PHP RPM ولكن ليس مع تبعيات Apigee Drupal Devمدخل RPM من خلال تنفيذ الأمر التالي:
    rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')

    ينفِّذ هذا الأمر ما يلي:

    • تزيل الدالة rpm -ev --nodeps العائد لكل ألف ظهور ولكن لا تزيل تبعياتها.
    • تنشئ rpm -qa قائمة بعائدات RPM التي يجب إزالتها.
    • grep php عملية بحث عن كل العائد لكل ألف ظهور بلغة PHP.
    • تطبع awk '{printf "%s ", $1}' أسماء RPM.
  13. شغِّل الأداة update على العقدة لتعديل البوابة:
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

    حيث يكون configFile هو ملف الإعداد الذي استخدمته لتثبيت البوابة الشرط الوحيد في ملف الإعداد هو أن يتمكن مستخدم "apigee" من الوصول إلى ملف الإعداد أو قراءته.

  14. شغِّل النص البرمجي update.php في Drupal عن طريق فتح عنوان URL التالي في نافذة متصفّح:
    http://portal_IP_DNS:8079/update.php
  15. أوقِف وضع الصيانة:
    1. اختَر الضبط في قائمة Drupal.
    2. في صفحة الإعدادات، اختَر وضع الصيانة ضمن التطوير.
    3. ألغِ اختيار المربع وضع الموقع في وضع الصيانة.
    4. اختَر حفظ الإعدادات.

لاحظ أن الدليل الجذري بعد التحديث هو:

/opt/apigee/apigee-drupal/wwwroot

اكتملت عملية الترقية الآن. إذا خفّضت أداة Apigee update إصدار جهازك من Drupal، قد تحتاج إلى إعادة تشغيل أداة الترقية المساعدة Drupal. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على إعادة تشغيل ترقية Drupal.

إعادة تنفيذ ترقية Drupal

إذا كان تشغيل أداة Apigee update لترقية Edge for Private Cloud يؤدي في الواقع إلى الرجوع إلى إصدار سابق من إصدار Drupal، عليك إعادة تثبيت ترقية Drupal. قد تكون هذه هي الحالة في حال ترقية Drupal فقط بين تحديثات Private Cloud.

مثال:

  1. كنت تستخدم الإصدار 4.18.05 من متصفّح Edge الخاص بخدمة Private Cloud يتضمّن الإصدار 7.59 من Drupal.
  2. لقد أجريت ترقية لـ Drupal إلى الإصدار 7.64 بسبب تحديث الأمان المطلوب.
  3. أنت بصدد ترقية الإصدار 4.19.01 من Private Cloud إلى الإصدار 4.19.01 الذي يتضمّن الإصدار 7.61 من Drupal.

كما هو موضّح في هذه الحالة، قد لا يشير إصدار Drupal الذي تستخدمه الأداة المساعدة Apigee update إلى أحدث ترقية Drupal. ونتيجة لذلك، يجب الآن إعادة تشغيل ترقية Drupal لإعادة تثبيت Drupal إلى الإصدار الأحدث.