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

يصف هذا الإجراء طريقة ترقية بوابة خدمات المطوّرين في 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. يجب افتراض أنّ أي ملف خارج دليل /sites مملوك لخدمة Drupal. ويُستثنى من هذه القاعدة robots.txt، فإذا كان هذا الملف متوفرًا في جذر الويب، سيتم الاحتفاظ به نيابةً عنك.

قبل المتابعة في عملية التثبيت، أنشئ نسخة احتياطية من دليل جذر الويب في Drupal بالكامل. بعد تنفيذ خطوات التثبيت الموضّحة أدناه، يمكنك استعادة عمليات التخصيص من النسخة الاحتياطية.

ترقية بوابة باستخدام حِزم RPM

لتعديل قيمة 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 أو الإعداد > الوسائط > الملف في قائمة Drupal لتحديد موقع نظام الملفات العام ومسار نظام الملفات الخاص (للخطوة التالية ).

  4. أنشئ نسخة احتياطية من الملفات في /opt/apigee/data/apigee-drupal-devportal/private.
  5. اضبط Drupal على وضع الصيانة:
    1. اختَر الإعدادات في قائمة Drupal.
    2. في صفحة الضبط، اختَر وضع الصيانة ضمن التطوير.
    3. ضَع علامة في المربّع وضع الموقع في وضع الصيانة.
    4. أدخِل رسالة تظهر للمستخدمين أثناء الصيانة.
    5. انقر على حفظ الضبط.
  6. أوقِف SELinux على النحو الموضّح في مقالة تثبيت أداة إعداد apigee-setup في 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. ثبّت الأداة المساعدة apigee-service والتبعيات من Edge 4.19.06:
      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. على العقدة التي تتضمّن المستودع المحلي، استخدِم الأمر التالي لحزمة المستودع المحلي في ملف 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

        يُرجى ملاحظة أنّك تضمّن المسار إلى دليل المستودعات في هذا الأمر.

    3. لتثبيت apigee-service باستخدام خادم الويب Nginx:
      1. اضبط خادم الويب Nginx كما هو موضّح في قسم "التثبيت من المستودع باستخدام خادم الويب Nginx" في مقالة تثبيت أداة Edge apigee-setup.
      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. أزِل اعتماديات RPM الخاصة بلغة PHP باستثناء ملحقات RPM في Apigee Drupal Dev Portal من خلال تنفيذ الأمر التالي:
    rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')
    .

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

    • تزيل rpm -ev --nodeps حِزم RPM ولكنّها لا تزيل تبعياتها.
    • rpm -qa ينشئ قائمة بنقاط الأداء التي يجب إزالتها.
    • يبحث grep php عن جميع الأرباح لكل ألف مشاهدة (RPM) في 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 for Private Cloud الذي يتضمّن الإصدار 7.59 من Drupal.
  2. تمت ترقية Drupal إلى الإصدار 7.64 بسبب تحديث الأمان المطلوب.
  3. يتم الآن ترقية Private Cloud إلى الإصدار 4.19.01 الذي يتضمّن Drupal 7.61.

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