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

Edge for Private Cloud גרסה 4.17.09

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

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

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

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

  • התקנת גרסה 4.17.09 מבוססת-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.17.09 של פורטל השירות למפתחים על סמך RPM בצומת אחר, מהפורטל מבוסס-ה-TAR.
  2. בפורטל שמבוסס על RPM, יוצרים מסד נתונים חדש של Postgres. לאחר מכן מעבירים את מסד הנתונים מהפורטל המבוסס על TAR למסד הנתונים החדש:
    1. מתחברים ל-psql:
      >psql -h localhost -p 5432 -U apigee

      מזינים את סיסמת Postgres כפי שהוגדרה על ידי המאפיין PG_PWD בקובץ התצורה של הפורטל.
    2. יוצרים מסד נתונים חדש Postgred:
      # 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 = 'apigee_account' AND type = 'prerush-module';"
    > drush sql-query --queryd name}

  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.
    7. מפעילים את המודול DBTNG Migrator.
    8. שומרים את התצורה.
  5. בפורטל מבוסס-tar, עורכים את /var/www/html/sites/default/settings.php כדי להוסיף הגדרה שנייה של מסד הנתונים, שמפנה למסד הנתונים החדש שנוצר בפורטל שמבוסס על RPM. התצורה הנוכחית של מסד הנתונים נקראת ברירת המחדל. נותנים שם להגדרות האישיות החדשות:
    $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' => '',
            )
          )
        );

    כאשר המארח והיציאה מציינים את כתובת ה-IP ואת היציאה של שרת Postgres. ב-Postgres נעשה שימוש ביציאה 5432 לצורך חיבורים.
  6. בפורטל מבוסס-TAR, מתקינים את מנהל ההתקן של Postgres:
    1. משתמשים ב-Yum כדי להתקין את מנהל ההתקן:
      > yum install php-pdo_pgsql
    2. עורכים את /etc/php.ini כדי להוסיף את השורה הבאה במקום כלשהו בקובץ:
      extension=pgsql.so
    3. מפעילים מחדש את Apache:
      > השירות httpd הופעל מחדש
  7. בפורטל שמבוסס על TAR, מעבירים את מסד הנתונים של הפורטל לפורטל שמבוסס על RPM:
    1. מתחברים לפורטל בתור אדמין.
    2. בתפריט Drupal, בוחרים באפשרות מבנה->Migrator.
    3. בוחרים את מסד הנתונים המקורי בפורטל שמבוסס על tar, ב-default ובמסד הנתונים של היעד, custom, על סמך הקובץ settings.php שמוצג למעלה.
    4. לוחצים על Migrate (העברה). מסד הנתונים שמבוסס על TAR מועבר למסד נתונים שמבוסס על RPM.
  8. מעתיקים את ספריית האתרים משרת מבוסס 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. גיבוי ספריית files הקיימת:
        > sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. מגבים את ספריית האתרים הקיימת:
        > tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. מחלצים את הקבצים של ספריית sites מהשרת שמבוסס על ה-tar:
        > gamzip /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-privatedapiportal/

  9. בפורטל מבוסס-tar, רק אם שיניתם את הנתיב לספריית הבסיס באינטרנט בפורטל מבוסס-tar מנתיב ברירת המחדל של /var/www/html: מריצים את drush status ובנתיב files ובנתיב קבצים פרטיים:
    > cd /var/www/html
    > drush status


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

    מגדירים את התיאור של מסד הנתונים החדש databasefix ב-Settings
    , כאשר הוא מוגדר כך שמסד הנתונים החדש ריק
    .
    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => 'localhost', 'port' => '5432',
              'driver' => 'pgsql',
              'prefix' => '',
            )
          )
        );
  11. בפורטל שמבוסס על RPM, הגרסה של הפורטל שמבוססת על RPM מכילה פחות מודולים של Drupal מאשר הגרסה שמבוססת על tar. אחרי ההעברה לפורטל שמבוסס על RPM, צריך לבדוק אם יש מודולים חסרים ולהתקין אותם לפי הצורך.
    1. מתקינים את ה-Drupal missing_module לזיהוי מודולים חסרים:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl missing_module
      > drush en missing_module
    2. מתחברים לפורטל שמבוסס על RPM בתור אדמין.
    3. בוחרים באפשרות Reports > Status Reports (דוחות > דוחות סטטוס) בתפריט Drupal ובודקים אם חסרים מודולים.
    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 שבה משתמש הפורטל.

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