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

Edge for Private Cloud का वर्शन 4.18.05

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

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

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

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

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

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

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

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

/opt/apigee/apigee-drupal

इससे बदलें:

/opt/apigee/apigee-drupal/wwwroot

पोर्टल कन्वर्ज़न की प्रोसेस

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

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

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

    2. नया Postgres डेटाबेस बनाएं:
      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 मेन्यू में जाकर, Modules को चुनें.
    7. DBTNG Migrator मॉड्यूल चालू करें.
    8. कॉन्फ़िगरेशन को सेव करें.
  5. tar-based पोर्टल पर, /var/www/html/sites/default/settings.php में बदलाव करें, ताकि RPM-based पोर्टल पर बनाए गए नए डेटाबेस पर ले जाने वाला दूसरा डेटाबेस कॉन्फ़िगरेशन जोड़ा जा सके. मौजूदा डेटाबेस कॉन्फ़िगरेशन का नाम "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, 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 मेन्यू में, Structure->Migrator को चुनें.
    3. ऊपर दिखाई गई settings.php फ़ाइल के आधार पर, tar-based पोर्टल, default पर अपना ओरिजन डेटाबेस और डेस्टिनेशन डेटाबेस, custom चुनें.
    4. माइग्रेट करें पर क्लिक करें. tar-based डेटाबेस को RPM-based डेटाबेस में माइग्रेट किया जाता है.
  8. sites डायरेक्ट्री को tar-based सर्वर से RPM-based सर्वर पर कॉपी करें. यहां दिए गए चरणों में दिखाए गए पाथ, डिफ़ॉल्ट पाथ पर आधारित हैं. इंस्टॉलेशन के लिए, ज़रूरत के मुताबिक इनमें बदलाव करें.
    1. tar-based पोर्टल पर, /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 में कॉपी करें.
    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-based सर्वर से 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 पोर्टल पर, सिर्फ़ तब, जब आपने tar-based पोर्टल पर वेब रूट डायरेक्ट्री का पाथ, डिफ़ॉल्ट पाथ /var/www/html से बदला हो: drush status चलाएं और files पाथ और private files पाथ देखें:
    cd /var/www/html
    drush status

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

  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 को tar-based पोर्टल पर कस्टम डेटाबेस के लिए तय किया गया है, और prefix खाली है.

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

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

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

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

कन्वर्ज़न की प्रोसेस पूरी हो गई है.