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

Edge for Private Cloud גרסה 4.19.01

בגרסה 4.18.05 של פורטל Apigee Developer Services (או פשוט, הפורטל) לא ניתן לעדכן גרסה קודמת מבוססת-tar של הפורטל. אפשר לעדכן ישירות את גרסת הפורטל שמבוססת על RPM רק ל-4.18.05.

עם זאת, אפשר להמיר גרסה מבוססת-זפת של הפורטל למכונה של הפורטל שמבוססת על 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, מתקינים ומגדירים את מודול ה-Drupal של Migrator:
    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. התצורה הנוכחית של מסד הנתונים נקראת "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, בוחרים באפשרות מבנה->Migrator.
    3. צריך לבחור את מסד הנתונים של המקור בפורטל שמבוסס על TAR , default, ואת מסד הנתונים של היעד custom, על סמך הקובץ settings.php שמוצג למעלה.
    4. לוחצים על Migrate (העברה). מסד הנתונים שמבוסס על TAR מועבר למסד נתונים שמבוסס על RPM.
  8. מעתיקים את הספרייה sites מהשרת מבוסס-הטרנד לשרת שמבוסס על 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. בוחרים באפשרות Reports > Status Reports (דוחות > דוחות סטטוס) בתפריט Drupal ובודקים אם חסרים מודולים.
    4. תוכלו להשתמש בדוח הזה כדי להתקין את המודולים החסרים, או להשתמש בפקודות הבאות:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl <moduleA> <moduleB> ...
      drush en <moduleA> <moduleB> ...
    5. אחרי שמפעילים את כל המודולים, חשוב לוודא שהקבצים בבעלות המשתמש API:
      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 שבה משתמש הפורטל.

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