המרת פורטל מבוסס טאר לפורטל מבוסס על RPM

Edge for Private Cloud v4.18.01

גרסה 4.18.01 של פורטל שירותי המפתחים לא מאפשרת לעדכן גרסה קודמת של הפורטל שמבוססת על tar. אפשר לעדכן ישירות רק גרסה של הפורטל שמבוססת על RPM ל-4.18.01.

עם זאת, אפשר להמיר גרסה מבוססת-tar של הפורטל למכונה מבוססת-RPM בגרסה 4.18.01 של הפורטל. כחלק מהתהליך הזה, מעבירים את MySQL/MariaDB של הפורטל הקיים למסד נתונים של Postgres. אחרי ההמרה, הפורטל יישאר פורטל מבוסס-RPM.

אתם יכולים להעביר הרבה גרסאות קודמות של הפורטל שמבוסס על tar לפורטל שמבוסס על RPM, כולל גרסאות 4.16.09 ו-4.17.01, ולא רק את גרסה 4.17.05. הדרישה היחידה היא שהפורטל יפעל ב-Drupal 7 ואילך. כדי לבדוק את גרסת Drupal, בתפריט של Drupal לוחצים על Reports > Status Reports. גרסת Drupal מופיעה בשורה הראשונה של הפלט.

השלבים הכלליים להעברה מפורטל מבוסס-tar לפורטל מבוסס-RPM הם:

  • מתקינים את גרסת 4.18.01 מבוססת ה-RPM של פורטל שירותי המפתחים בצומת חדש.
  • יוצרים מסד נתונים חדש של Postgres בפורטל שמבוסס על RPM.
  • מעבירים את מסד הנתונים של הפורטל מהפורטל שמבוסס על tar.
  • מעתיקים את כל קובצי האביזרים מהפורטל שמבוסס על tar לפורטל שמבוסס על RPM.
  • מעדכנים את רשומות ה-DNS כך שיפנו אל הפורטל החדש שמבוסס על RPM.

    שימו לב שבגרסה של הפורטל שמבוססת על RPM, ברירת המחדל היא יציאה 8079, ובגרסה שמבוססת על tar, ברירת המחדל היא יציאה 80. חשוב לוודא שאתם משתמשים במספר היציאה הנכון ברשומת ה-DNS. במאמר הגדרת יציאת ה-HTTP שמשמשת את הפורטל מוסבר איך להשתמש ביציאה אחרת.

ספריית ברירת המחדל החדשה להתקנה אחרי ההמרה

אחרי שמעדכנים התקנה שמשתמשת עכשיו ב-Nginx או ב-Postgres, תיקיית השורש משתנה מ:

/opt/apigee/apigee-drupal

אל:

/opt/apigee/apigee-drupal/wwwroot

תהליך ההמרה של הפורטל

כדי להמיר את הפורטל להתקנה מבוססת-RPM:

  1. מתקינים את גרסה 4.18.01 של פורטל שירותי המפתחים שמבוססת על RPM בצומת אחר מהפורטל שמבוסס על tar.
  2. בפורטל שמבוסס על RPM, יוצרים מסד נתונים חדש של Postgres. בהמשך, מעבירים את מסד הנתונים מהפורטל שמבוסס על tar למסד הנתונים החדש:
    1. מתחברים ל-psql:
      >psql -h localhost -p 5432 -U apigee

      מזינים את הסיסמה ל-Postgres, כפי שהוגדרה במאפיין PG_PWD בקובץ התצורה של הפורטל.
    2. יוצרים מסד נתונים חדש ב-PostgreSQL:
      # CREATE DATABASE newportaldb;
    3. יוצאים מ-psql:
      # \q
  3. בפורטל שמבוסס על tar, מסירים מודולים ישנים שכבר לא בשימוש:
    > cd /var/www/html
    > drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_account' AND type = 'module';"
    > drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_checklist' AND type = 'module';"
    > drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_sso_ui' AND type = 'module';"

  4. בפורטל שמבוסס על tar, מתקינים ומגדירים את המודול Migrator Drupal:

    1. cd /tmp
    2. wget https://ftp.drupal.org/files/projects/dbtng_migrator-7.x-1.4.tar.gz
    3. gunzip /tmp/dbtng_migrator-7.x-1.4.tar.gz
    4. tar -xvf /tmp/dbtng_migrator-7.x-1.4.tar --directory /var/www/html/sites/all/modules
    5. נכנסים לפורטל כאדמינים.
    6. בתפריט של Drupal, בוחרים באפשרות Modules (מודולים).
    7. מפעילים את המודול DBTNG Migrator.
    8. שומרים את ההגדרה.
  5. בפורטל שמבוסס על tar, עורכים את /var/www/html/sites/default/settings.php כדי להוסיף הגדרה של מסד נתונים שני שמפנה למסד הנתונים החדש שנוצר בפורטל שמבוסס על RPM. השם של הגדרת ברירת המחדל של מסד הנתונים הוא default. נותנים שם להגדרה החדשה custom:
    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'devportal',
              'username' => 'devportal',
              'password' => 'devportal',
              'host' => 'localhost',
              'port' => '',
              'driver' => 'mysql',
              'prefix' => '',
            ),
          ),
          'custom' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => '192.168.168.100',
              'port' => '5432',
              'driver' => 'pgsql',
              'prefix' => '',
            )
          )
        );

    כאשר host ו-port מציינים את כתובת ה-IP והיציאה של שרת Postgres. ‫Postgres משתמש ביציאה 5432 לחיבורים.
  6. בפורטל שמבוסס על tar, מתקינים את מנהל ההתקן של Postgres:
    1. משתמשים ב-Yum כדי להתקין את מנהל ההתקן:
      > yum install php-pdo_pgsql
    2. עורכים את ‎/etc/php.ini כדי להוסיף את השורה הבאה בכל מקום בקובץ:
      extension=pgsql.so
    3. מפעילים מחדש את Apache:
      > service httpd restart
  7. בפורטל שמבוסס על tar, מעבירים את מסד הנתונים של הפורטל לפורטל שמבוסס על RPM:
    1. מתחברים לפורטל כאדמינים.
    2. בתפריט של Drupal, בוחרים באפשרות Structure->Migrator.
    3. בוחרים את מסד הנתונים המקורי בפורטל שמבוסס על tar, ‏default, ואת מסד הנתונים של היעד, custom, על סמך הקובץ settings.php שמוצג למעלה.
    4. לוחצים על העברה. מסד הנתונים שמבוסס על tar מועבר למסד הנתונים שמבוסס על RPM.
  8. מעתיקים את הספרייה sites מהשרת שמבוסס על tar לשרת שמבוסס על RPM.
    הנתיבים שמוצגים בשלבים הבאים מבוססים על נתיבי ברירת המחדל. משנים אותם לפי הצורך בהתאם להתקנה.
    1. בפורטל שמבוסס על tar, מאגדים את הספרייה /var/www/html/sites:
      > cd /var/www/html/sites
      > tar -cvzf /tmp/sites.tar.gz .
    2. מעתיקים את ‎/tmp/sites.tar.gz אל ‎/opt/apigee/apigee-drupal/wwwroot/sites בשרת שמבוסס על RPM.
    3. מבטלים את החבילה של ספריית האתרים, אבל לא מחליפים קבצים חשובים.
      1. מגבים את הקובץ settings.php:
        > sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. מגבים את ספריית הקבצים הקיימת:
        > sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. מגבים את ספריית sites הקיימת:
        > tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. מבטלים את הדחיסה של ספריית sites מהשרת שמבוסס על tar:
        > gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz

        > tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. מוודאים שהקבצים שהועתקו נמצאים בבעלות המתאימה:
        > chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. שחזור קובץ settings.php:
        > sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. מעבירים קבצים פרטיים למיקום חדש:
        > cp -r /opt/apigee/apigee-drupal/wwwroot/sites/default/files/private/* /opt/apigee/data/apigee-drupal-devportal/private

        > rm -rf /opt/apigee/apigee-drupal/wwwroot/sites/default/files/private

        > chown -R apigee:apigee /opt/apigee/data/apigee-sap-drupal-devportal/private
  9. בפורטל שמבוסס על tar, רק אם שיניתם את הנתיב לספריית הבסיס של האינטרנט בפורטל שמבוסס על tar מנתיב ברירת המחדל של ‎/var/www/html: מריצים את drush status ומסתכלים על הנתיב של files ועל הנתיב של private files:
    > cd /var/www/html
    > drush status


    אם הקבצים או הקבצים הפרטיים לא נמצאים בספרייה sites, מעתיקים אותם לשרת שמבוסס על RPM כמו שמוצג למעלה.
  10. בפורטל שמבוסס על RPM, מעדכנים את /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php כדי להגדיר את המאפיינים של מסד הנתונים שמוגדר כברירת מחדל:
    > vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    מגדירים את תיאור ברירת המחדל של מסד הנתונים ב-settings.php:
    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => 'localhost', 'port' => '5432',
              'driver' => 'pgsql',
              'prefix' => '',
            )
          )
        );

    כאשר database מציין את מסד הנתונים החדש שיצרתם, username ו-password הם כפי שהוגדרו למסד הנתונים בהתאמה אישית בפורטל המבוסס על tar, ו-prefix ריק.
  11. בפורטל שמבוסס על RPM, הגרסה של הפורטל שמבוססת על RPM מכילה פחות מודולים של Drupal מאשר הגרסה שמבוססת על tar. אחרי המעבר לפורטל שמבוסס על RPM, צריך לבדוק אם חסרים מודולים ולהתקין אותם לפי הצורך.
    1. מתקינים את missing_module של Drupal, שמשמש לזיהוי מודולים חסרים:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl missing_module
      > drush en missing_module
    2. נכנסים לפורטל שמבוסס על RPM כאדמינים.
    3. בתפריט של Drupal, לוחצים על Reports > Status reports (דוחות > דוחות סטטוס) ובודקים אם חסרים מודולים.
    4. משתמשים בדוח הזה כדי להתקין את המודולים החסרים, או משתמשים בפקודות הבאות:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl <moduleA> <moduleB> ...
      > drush en <moduleA> <moduleB> ...
    5. אחרי שמפעילים את כל המודולים, מוודאים שהקבצים נמצאים בבעלות של משתמש apigee:
      > chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      מידע נוסף על הרשאות לקבצים זמין בכתובת https://www.drupal.org/node/244924.
  12. בפורטל שמבוסס על RPM, מריצים את update.php בדפדפן כדי להסיר שגיאות לגבי מודולים חסרים:
    1. נכנסים לפורטל שמבוסס על RPM כאדמינים.
    2. בדפדפן, עוברים לכתובת ה-URL הבאה:
      http://{portal_IP_or_DNS}:8079/update.php

      כאשר portal_IP_or_DNS היא כתובת ה-IP או שם הדומיין של הפורטל שמבוסס על RPM.
    3. פועלים לפי ההנחיות במסך.
  13. מעדכנים את רשומות ה-DNS כך שיפנו לפורטל החדש שמבוסס על RPM.

    שימו לב שבגרסה של הפורטל שמבוססת על RPM, ברירת המחדל היא יציאה 8079, ובגרסה שמבוססת על tar, ברירת המחדל היא יציאה 80. חשוב לוודא שאתם משתמשים במספר היציאה הנכון ברשומת ה-DNS. במאמר הגדרת יציאת ה-HTTP שמשמשת את הפורטל מוסבר איך להשתמש ביציאה אחרת.

ההמרה הושלמה.