टार-आधारित पोर्टल को आरपीएम-आधारित पोर्टल में बदलें

Edge for Private Cloud v4.18.05

Apigee Developer Services पोर्टल (या सिर्फ़ पोर्टल) के 4.18.05 रिलीज़ में, पोर्टल के टैर पर आधारित पिछले वर्शन को अपडेट नहीं किया जा सकता. पोर्टल के RPM-आधारित वर्शन को सीधे तौर पर 4.18.05 पर अपडेट किया जा सकता है.

हालांकि, पोर्टल के टैर-आधारित वर्शन को पोर्टल के 4.18.05 RPM-आधारित इंस्टेंस में बदला जा सकता है. इस प्रोसेस के तहत, मौजूदा पोर्टल के MySQL/MariaDB को Postgres डेटाबेस पर माइग्रेट किया जाता है. पोर्टल को RPM पर आधारित पोर्टल में बदलने के बाद, वह RPM पर आधारित पोर्टल ही बना रहता है.

टैर पर आधारित पोर्टल के कई पुराने वर्शन को RPM पर आधारित पोर्टल पर माइग्रेट किया जा सकता है. इसमें सिर्फ़ 4.17.05 वर्शन ही नहीं, बल्कि 4.16.09 और 4.17.01 वर्शन भी शामिल हैं. इसके लिए ज़रूरी है कि पोर्टल पर Drupal 7 या उसके बाद का वर्शन इस्तेमाल किया जा रहा हो. Drupal का वर्शन देखने के लिए, Drupal मेन्यू में रिपोर्ट > स्टेटस रिपोर्ट चुनें. Drupal का वर्शन, आउटपुट की पहली पंक्ति में दिखता है.

टैर पर आधारित पोर्टल से RPM पर आधारित पोर्टल पर माइग्रेट करने के लिए, ये मुख्य चरण अपनाएं:

  • नए नोड पर, पोर्टल का RPM-based 4.18.05 वर्शन इंस्टॉल करें.
  • RPM पर आधारित पोर्टल पर नया Postgres डेटाबेस बनाएं.
  • पोर्टल डेटाबेस को tar-based पोर्टल से माइग्रेट करें.
  • सभी ऐक्सेसरी फ़ाइल को tar-based पोर्टल से RPM-based पोर्टल पर कॉपी करें.
  • RPM पर आधारित नए पोर्टल पर ले जाने के लिए, डीएनएस एंट्री अपडेट करें.

    ध्यान दें कि पोर्टल के RPM-आधारित वर्शन में, डिफ़ॉल्ट रूप से पोर्ट 8079 का इस्तेमाल किया जाता है. वहीं, टैर-आधारित वर्शन में पोर्ट 80 का इस्तेमाल किया जाता है. पक्का करें कि आपने डीएनएस एंट्री में सही पोर्ट नंबर का इस्तेमाल किया हो. किसी दूसरे पोर्ट का इस्तेमाल करने के बारे में जानकारी पाने के लिए, पोर्टल के लिए इस्तेमाल किया जाने वाला एचटीटीपी पोर्ट सेट करना देखें.

कन्वर्ज़न के बाद, इंस्टॉल की नई डिफ़ॉल्ट डायरेक्ट्री

Nginx/Postgres का इस्तेमाल करने वाले इंस्टॉलेशन को अपडेट करने के बाद, रूट डायरेक्ट्री इनसे बदल गई:

/opt/apigee/apigee-drupal

इससे बदलें:

/opt/apigee/apigee-drupal/wwwroot

पोर्टल को कन्वर्ज़न में बदलने की प्रोसेस

पोर्टल को RPM-आधारित इंस्टॉलेशन में बदलने के लिए:

  1. पोर्टल के RPM-आधारित 4.18.05 वर्शन को, टैर-आधारित पोर्टल से अलग नोड पर इंस्टॉल करें.
  2. आरपीएम पर आधारित पोर्टल पर, नया Postgres डेटाबेस बनाएं. बाद में, डेटाबेस को टैर पर आधारित पोर्टल से इस नए डेटाबेस पर माइग्रेट किया जाता है:
    1. psql में लॉग इन करें:
      psql -h localhost -p 5432 -U apigee

      पोर्टल की कॉन्फ़िगरेशन फ़ाइल में PG_PWD प्रॉपर्टी के तौर पर बताए गए Postgres पासवर्ड को डालें.

    2. नया Postgred डेटाबेस बनाएं:
      CREATE DATABASE newportaldb;
    3. psql से बाहर निकलने के लिए:
      \q
  3. tar-based पोर्टल पर, ऐसे पुराने मॉड्यूल हटाएं जिनका अब इस्तेमाल नहीं किया जाता:

    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-based पोर्टल पर, 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 माइग्रेटर मॉड्यूल चालू करें.
    8. कॉन्फ़िगरेशन सेव करें.
  5. tar-based पोर्टल पर, /var/www/html/sites/default/settings.php में बदलाव करें RPM-based पोर्टल पर बनाए गए नए डेटाबेस पर ले जाने वाला दूसरा डेटाबेस कॉन्फ़िगरेशन जोड़ने के लिए. मौजूदा डेटाबेस कॉन्फ़िगरेशन का नाम "डिफ़ॉल्ट" है. अपने नए कॉन्फ़िगरेशन को "कस्टम" नाम दें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
    $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, Postgres सर्वर के आईपी पते और पोर्ट की जानकारी देते हैं. Postgres, कनेक्शन के लिए पोर्ट 5432 का इस्तेमाल करता है.

  6. tar-based पोर्टल पर, Postgres ड्राइवर इंस्टॉल करें:
    1. ड्राइवर इंस्टॉल करने के लिए, Yum का इस्तेमाल करें:
      yum install php-pdo_pgsql
    2. फ़ाइल में कहीं भी यह लाइन जोड़ने के लिए, /etc/php.ini में बदलाव करें:
      extension=pgsql.so
    3. Apache को रीस्टार्ट करें:
      service httpd restart
  7. tar-based पोर्टल पर, पोर्टल के डेटाबेस को RPM-based पोर्टल पर माइग्रेट करें:
    1. एडमिन के तौर पर पोर्टल में लॉग इन करें.
    2. Drupal मेन्यू में, स्ट्रक्चर->माइग्रेटर चुनें.
    3. ऊपर दिखाई गई settings.php फ़ाइल के आधार पर, टैर पर आधारित पोर्टल default पर अपना ऑरिजिन डेटाबेस और डेस्टिनेशन डेटाबेस custom चुनें.
    4. माइग्रेट करें पर क्लिक करें. टैर पर आधारित डेटाबेस को RPM पर आधारित डेटाबेस में माइग्रेट किया जाता है.
  8. sites डायरेक्ट्री को टैर-आधारित सर्वर से आरपीएम-आधारित सर्वर पर कॉपी करें. यहां दिए गए चरणों में दिखाए गए पाथ, डिफ़ॉल्ट पाथ पर आधारित हैं. अपने इंस्टॉलेशन के लिए, ज़रूरत के मुताबिक उनमें बदलाव करें.
    1. टैर पर आधारित पोर्टल पर, /var/www/html/sites डायरेक्ट्री को बंडल करें:
      cd /var/www/html/sites
      tar -cvzf /tmp/sites.tar.gz .
    2. RPM-आधारित सर्वर पर, /tmp/sites.tar.gz को /opt/apigee/apigee-drupal/wwwroot/sites पर कॉपी करें.
    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. tar-आधारित सर्वर से sites डायरेक्ट्री को अनज़िप और अनटैर करें:
        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-based पोर्टल पर, सिर्फ़ तब जब आपने /var/www/html के डिफ़ॉल्ट पाथ से, tar-based पोर्टल पर वेब रूट डायरेक्ट्री का पाथ बदला हो: drush status चलाएं और files पाथ और private files पाथ देखें:
    cd /var/www/html
    drush status

    अगर फ़ाइलें/निजी फ़ाइलें sites डायरेक्ट्री में नहीं हैं, तो उन्हें ऊपर दिखाए गए तरीके से, RPM पर आधारित सर्वर पर कॉपी करें.

  10. आरपीएम पर आधारित पोर्टल पर, डिफ़ॉल्ट डेटाबेस की प्रॉपर्टी सेट करने के लिए, /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, टैर पर आधारित पोर्टल पर कस्टम डेटाबेस के लिए तय किए गए हैं, और prefix खाली है.

  11. RPM पर आधारित पोर्टल पर, पोर्टल के RPM पर आधारित वर्शन में, टैर पर आधारित वर्शन की तुलना में कम Drupal मॉड्यूल होते हैं. RPM पर आधारित पोर्टल पर माइग्रेट करने के बाद, आपको यह देखना होगा कि कोई मॉड्यूल मौजूद है या नहीं. अगर कोई मॉड्यूल मौजूद नहीं है, तो उसे ज़रूरत के हिसाब से इंस्टॉल करें.
    1. Drupal missing_module इंस्टॉल करें. इसका इस्तेमाल, मौजूद नहीं मॉड्यूल का पता लगाने के लिए किया जाता है:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. RPM पर आधारित पोर्टल में एडमिन के तौर पर लॉग इन करें.
    3. 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. ब्राउज़र में, इस यूआरएल पर जाएं:
      http://portal_IP_or_DNS:8079/update.php

      यहां portal_IP_or_DNS, RPM पर आधारित पोर्टल का आईपी पता या डोमेन नेम है.

    3. स्क्रीन पर दिए गए निर्देशों का पालन करें.
  13. आरपीएम पर आधारित अपने नए पोर्टल पर ले जाने के लिए, डीएनएस एंट्री अपडेट करें.

    ध्यान दें कि पोर्टल के RPM-आधारित वर्शन में, डिफ़ॉल्ट रूप से पोर्ट 8079 का इस्तेमाल किया जाता है. वहीं, टैर-आधारित वर्शन में पोर्ट 80 का इस्तेमाल किया जाता है. पक्का करें कि आपने डीएनएस एंट्री में सही पोर्ट नंबर का इस्तेमाल किया हो. किसी दूसरे पोर्ट का इस्तेमाल करने के बारे में जानकारी पाने के लिए, पोर्टल के लिए इस्तेमाल किया जाने वाला एचटीटीपी पोर्ट सेट करना देखें.

कन्वर्ज़न पूरा हो गया.