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

Edge for Private Cloud v4.18.05

במהדורה 4.18.05 של פורטל שירותי המפתחים של Apigee (או פשוט הפורטל) אי אפשר לעדכן גרסה קודמת של הפורטל שמבוססת על קובץ tar. אפשר לעדכן ישירות רק גרסה של הפורטל שמבוססת על RPM לגרסה 4.18.05.

עם זאת, אפשר להמיר גרסה של הפורטל שמבוססת על קובץ tar למכונה של הפורטל שמבוססת על RPM בגרסה 4.18.05. כחלק מהתהליך, מעבירים את 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.18.05 המבוססת על 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.05 שמבוססת על 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 = '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. שם התצורה הנוכחית של מסד הנתונים הוא 'ברירת מחדל'. נותנים שם לתצורה החדשה '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. מגבים את הספרייה הקיימת files:
        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 שבה הפורטל משתמש.

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