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

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

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

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

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

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

  • 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 أو في أي وحدات غير مخصّصة، سيتم استبدال تعديلاتك. ويشمل ذلك، من بين أمور أخرى، أي تغييرات أجريتها على .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 أو الإدخال Configuration > Media > File في قائمة Drupal لتحديد موقع نظام الملفات العام ومسار نظام الملفات الخاص (للخطوة التالية).

  4. احتفِظ بنسخة احتياطية من الملفات في "/opt/apigee/data/apigee-drupal-devportal/private".
  5. اضبط Drupal على وضع الصيانة:
    1. اختَر Configuration (الإعدادات) في قائمة Drupal.
    2. في صفحة Configuration (الإعدادات)، اختَر Maintenance mode (وضع الصيانة) ضمن Development (التطوير).
    3. ضَع علامة في المربّع وضع الموقع الإلكتروني في وضع الصيانة.
    4. أدخِل رسالة تظهر للمستخدمين أثناء الصيانة.
    5. انقر على حفظ الإعدادات.
  6. أوقِف SELinux على النحو الموضّح في تثبيت أداة apigee-setup في Edge.
  7. انتقِل إلى الدليل /opt:
    cd /opt
  8. للترقية على خادم متصل بالإنترنت:
    1. نزِّل ملف Edge 4.19.06 bootstrap_4.19.06.sh إلى /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. On the node with the local repo, use the following command to package the local repo into a single .tar file named /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. ثبِّت أداة Edge apigee-service والتبعيات من /tmp/repos:
        sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

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

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

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

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

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