পোর্টাল আপগ্রেড করা

এই পদ্ধতিতে, আগে থেকে থাকা Apigee ডেভেলপার পরিষেবা পোর্টাল (বা সহজভাবে, পোর্টাল) অন-প্রিমিস ইনস্টলেশন কীভাবে আপগ্রেড করতে হয় তা বর্ণনা করা হয়েছে।

আপডেট করার সঠিক পদ্ধতি নির্ধারণ করা

পোর্টাল আপডেট করার জন্য আপনি যে পদ্ধতি ব্যবহার করেন তা আপনার বর্তমান ইনস্টলেশনের উপর ভিত্তি করে:

আপনার বর্তমান ইনস্টলেশনের ধরন নির্ধারণ করুন

আপনার বর্তমান ইনস্টলেশনের ধরন সম্পর্কে নিশ্চিত না হলে, এটি নির্ধারণ করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

  • ls /opt

    আপনি Nginx/Postgres ব্যবহার করলে, নিম্নলিখিত ডিরেক্টরি দেখতে পাবেন: /opt/apigee এবং /opt/nginx।

    আপনি Apache/MySQL বা Apache/MariaDB ব্যবহার করলে, এইসব ডিরেক্টরি থাকবে না।

  • /opt/apigee/apigee-service/bin/apigee-all status

    আপনি Nginx/Postgres ব্যবহার করলে, নিম্নলিখিত আউটপুট দেখতে পাবেন:

    + apigee-service
    apigee-drupal-devportal status
    OK: apigee-drupal-devportal is up and running
    + apigee-service apigee-lb status
    apigee-service: apigee-lb: OK
    + apigee-service apigee-postgresql status
    apigee-service: apigee-postgresql: OK
  • apachectl -S

    আপনি Apache/MySQL বা Apache/MariaDB ব্যবহার করলে, এই কমান্ডের মাধ্যমে পোর্টালের ওয়েব রুট ডিরেক্টরি এই ফর্ম্যাটে দেখানো উচিত:

    *:80
    192.168.56.102 (/etc/httpd/conf/vhosts/devportal.conf:1)

ডিফল্ট ইনস্টলেশন ডিরেক্টরি

আপগ্রেড প্রসেস ধরে নেয় যে পোর্টালটি এখানে ইনস্টল করা হয়েছে:

  • 4.17.05 এবং তার পরের যেকোনও ভার্সন: /opt/apigee/apigee-drupal/wwwroot
  • 4.17.05-এর আগে: /opt/apigee/apigee-drupal (Nginx) অথবা /var/www/html (Apache)

আপনি যদি ডিফল্ট ডিরেক্টরিতে পোর্টাল ইনস্টল না করে থাকেন, তাহলে আপনার ইনস্টলেশন ডিরেক্টরি ব্যবহার করতে নিচের পদ্ধতিতে পাথগুলি পরিবর্তন করুন।

আপগ্রেড করা যেসব ভার্সন কাজ করে

এই আপগ্রেড পদ্ধতি OPDK-17-01.x এবং তার পরবর্তী পোর্টাল ভার্সনে কাজ করে।

আপনার পোর্টাল ভার্সন নির্ধারণ করতে, ব্রাউজারে নিম্নলিখিত URL খুলুন:

http://yourportal.com/buildInfo

আপডেট করার আগে

আগে থেকে ইনস্টল করা থাকলে, আপনি Drupal কোর বা কোনও নন-কাস্টম মডিউলে কোনও কোড পরিবর্তন করে থাকলে, আপনার করা পরিবর্তন ওভাররাইট করা হবে। এর মধ্যে, অন্যান্য বিষয়ের সাথে, .htaccess-এ আপনার করা যেকোনও পরিবর্তন অন্তর্ভুক্ত। /sites ডিরেক্টরির বাইরে যা কিছু আছে তা Drupal-এর মালিকানাধীন বলে আপনাকে ধরে নিতে হবে। এই নিয়মের ব্যতিক্রম হল robots.txt; এই ফাইল ওয়েব রুটে থাকলে, এটি আপনার জন্য সংরক্ষিত থাকবে।

ইনস্টলেশন শুরু করার আগে, আপনার সম্পূর্ণ Drupal ওয়েব রুট ডিরেক্টরির ব্যাক-আপ নিন। নিচে উল্লেখ করা ইনস্টলেশন ধাপগুলি সম্পূর্ণ করার পরে, আপনি ব্যাক-আপ থেকে আপনার কাস্টমাইজেশন রিস্টোর করতে পারবেন।

RPM ব্যবহার করে পোর্টাল আপগ্রেড করা

কোনও নোডে পোর্টাল RPM আপডেট করতে:

  1. ডিফল্ট হিসেবে /opt/apigee/apigee-drupal, Drupal ডিরেক্টরিতে পরিবর্তন করুন:
    cd /opt/apigee/apigee-drupal
  2. আপনার Drupal ডেটাবেস ইনস্ট্যান্সের ব্যাক-আপ নিন। pg_dump কমান্ড ডেটাবেসের একটি কপি তৈরি করে:
    pg_dump --dbname=devportal --host=host_IP_address --username=drupaladmin
      --password --format=c > /tmp/portal.dmp

    যেখানে:

    • devportal হল ডেটাবেসের নাম যা পোর্টাল ইনস্টলেশন কনফিগারেশন ফাইলে PG_NAME প্রপার্টি দ্বারা নির্দিষ্ট করা হয়েছে।
    • host_IP_address হল পোর্টাল নোডের IP অ্যাড্রেস।
    • drupaladmin হল Postgres ইউজারনেম যা পোর্টাল ইনস্টলেশন কনফিগারেশন ফাইলে DRUPAL_PG_USER প্রপার্টি দ্বারা নির্দিষ্ট করা ডেটাবেস অ্যাক্সেস করতে পোর্টাল ব্যবহার করে।

    আপনাকে Postgres ব্যবহারকারীর পাসওয়ার্ডের জন্য প্রম্পট করা হয়, যেমনটি পোর্টাল ইনস্টলেশন কনফিগারেশন ফাইলে DRUPAL_PG_PASS প্রপার্টি দ্বারা সংজ্ঞায়িত করা হয়েছে।

    আপনি পরে ব্যাক-আপ থেকে ডেটা ফিরিয়ে আনতে চাইলে, নিম্নলিখিত কমান্ড ব্যবহার করুন:

    pg_restore --clean --dbname=devportal --host=localhost  --username=apigee < /tmp/portal.dmp
  3. আপনার সম্পূর্ণ Drupal ওয়েব রুট ডিরেক্টরির ব্যাক-আপ নিন। ইনস্টল করার ডিফল্ট লোকেশন হল /opt/apigee/apigee-drupal, তবে আপনি হয়ত এটি পরিবর্তন করেছেন।

    আপনি এই ডিরেক্টরির লোকেশন সম্পর্কে নিশ্চিত না হলে, পাবলিক ফাইল সিস্টেম এবং প্রাইভেট ফাইল সিস্টেম পাথের লোকেশন নির্ধারণ করতে (পরবর্তী ধাপের জন্য) Drupal মেনুতে drush status কমান্ড বা কনফিগারেশন > মিডিয়া > ফাইল এন্ট্রি ব্যবহার করুন।

  4. /opt/apigee/data/apigee-drupal-devportal/private-এ ফাইলের ব্যাক-আপ নিন।
  5. Drupal-কে রক্ষণাবেক্ষণ মোডে সেট করুন:
    1. Drupal মেনু থেকে কনফিগারেশন বিকল্প বেছে নিন।
    2. কনফিগারেশন পৃষ্ঠায়, ডেভেলপমেন্ট-এর অধীনে মেনটেন্যান্স মোড বেছে নিন।
    3. সাইট রক্ষণাবেক্ষণ মোডে রাখুন বক্সে টিকচিহ্ন দিন।
    4. রক্ষণাবেক্ষণ চলাকালীন ব্যবহারকারীরা দেখতে পাবেন এমন একটি মেসেজ লিখুন।
    5. কনফিগারেশন সেভ করুন বিকল্প বেছে নিন।
  6. Edge apigee-setup ইউটিলিটি ইনস্টল করুন-এ যেমন বর্ণনা করা হয়েছে সেই অনুযায়ী SELinux বন্ধ করুন।
  7. /opt ডিরেক্টরিতে পরিবর্তন করুন:
    cd /opt
    1. ইন্টারনেট কানেকশন আছে এমন সার্ভারে আপগ্রেড করার জন্য:
    2. Edge 4.19.06 bootstrap_4.19.06.sh ফাইলটি ডাউনলোড করুন /tmp/bootstrap_4.19.06.sh:
      curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
    3. Edge 4.19.06 apigee-service ইউটিলিটি ও ডিপেন্ডেন্সি ইনস্টল করুন:
      sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord

      যেখানে uName এবং pWord হল Apigee থেকে পাওয়া ইউজারনেম এবং পাসওয়ার্ড। আপনি pWord বাদ দিলে, আপনাকে এটি লিখতে বলা হবে।

      ডিফল্ট হিসেবে, ইনস্টলার চেক করে দেখে যে আপনার Java 1.8 ইনস্টল করা আছে কিনা। Java ইনস্টল না করেই চালিয়ে যেতে আপনি "C" বিকল্প ব্যবহার করতে পারেন।

  8. ইন্টারনেট কানেকশন নেই এমন সার্ভারে আপগ্রেড করার জন্য:
    1. লোকাল Apigee রিপোজিটরি তৈরি করুন-এ যেভাবে বর্ণনা করা হয়েছে সেইভাবে লোকাল 4.19.06 রিপোজিটরি তৈরি করুন।
    2. .tar ফাইল থেকে apigee-service ইনস্টল করতে:
      1. লোকাল রেপো সহ নোডে, লোকাল রেপোকে /opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz নামের একটি .tar ফাইলে প্যাকেজ করতে নিম্নলিখিত কমান্ড ব্যবহার করুন:
        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. যে নোডে Edge আপডেট করতে চান সেখানে .tar ফাইল কপি করুন। যেমন, নতুন নোডের /tmp ডিরেক্টরিতে এটি কপি করুন।
      3. নতুন নোডে, /tmp ডিরেক্টরিতে ফাইলটি আনটার করুন:
        tar -xzf apigee-4.19.06.tar.gz

        এই কমান্ডটি .tar ফাইল ধারণকারী ডিরেক্টরিতে repos নামে একটি নতুন ডিরেক্টরি তৈরি করে। যেমন /tmp/repos.

      4. এখান থেকে Edge apigee-service ইউটিলিটি ও ডিপেন্ডেন্সি ইনস্টল করুন /tmp/repos:
        sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        লক্ষ্য করুন যে আপনি এই কমান্ডে রেপো ডিরেক্টরির পাথ অন্তর্ভুক্ত করেছেন।

    3. Nginx ওয়েবসার্ভার ব্যবহার করে apigee-service ইনস্টল করতে:
      1. Edge apigee-setup ইউটিলিটি ইনস্টল করুন লিঙ্কে "Nginx ওয়েবসার্ভার ব্যবহার করে রেপো থেকে ইনস্টল করুন" বিভাগে যেভাবে বলা হয়েছে সেইভাবে Nginx ওয়েব সার্ভার কনফিগার করুন।
      2. রিমোট নোডে, Edge bootstrap_4.19.06.sh ফাইলটি /tmp/bootstrap_4.19.06.sh-এ ডাউনলোড করুন:
        /usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.19.06.sh
          -o /tmp/bootstrap_4.19.06.sh

        যেখানে uName এবং pWord হল আপনার সেট করা ইউজারনেম এবং পাসওয়ার্ড রেপোর জন্য এবং remoteRepo হল IP অ্যাড্রেস বা রেপো নোডের DNS নাম।

      3. রিমোট নোডে, Edge apigee-service ইউটিলিটি এবং ডিপেন্ডেন্সি ইনস্টল করুন:
        sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939
          apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        যেখানে uName এবং pWord হল রেপো ইউজারনেম এবং পাসওয়ার্ড।

  9. apigee-setup ইউটিলিটি আপডেট করতে apigee-service ব্যবহার করুন:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  10. আপনার Postgres নোডে update ইউটিলিটি রান করুন:
    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    যেখানে configFile হল কনফিগারেশন ফাইল যা আপনি Postgres ডেটাবেস ইনস্টল করতে ব্যবহার করেছেন। কনফিগারেশন ফাইলের ক্ষেত্রে একমাত্র প্রয়োজনীয়তা হল, কনফিগারেশন ফাইলটি "apigee" ব্যবহারকারীর দ্বারা অ্যাক্সেসযোগ্য বা পাঠযোগ্য হতে হবে।

  11. নিম্নলিখিত কমান্ডটি কার্যকর করে PHP RPMগুলি সরান, তবে Apigee Drupal Devportal RPM নির্ভরতাগুলি নয়:
    rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')

    এই কমান্ড নিম্নলিখিত কাজ করে:

    • rpm -ev --nodeps RPM সরিয়ে দেয় কিন্তু তাদের ডিপেন্ডেন্সি নয়।
    • rpm -qa সরিয়ে দেওয়ার জন্য RPM-এর তালিকা তৈরি করে।
    • grep php সব PHP RPM সার্চ করে।
    • awk '{printf "%s ", $1}' RPM-এর নাম প্রিন্ট করে।
  12. পোর্টাল আপডেট করতে আপনার নোডে update ইউটিলিটি রান করুন:
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

    যেখানে configFile হল কনফিগারেশন ফাইল যা আপনি পোর্টাল ইনস্টল করতে ব্যবহার করেছেন। কনফিগারেশন ফাইলের ক্ষেত্রে একমাত্র প্রয়োজনীয়তা হল, কনফিগারেশন ফাইলটি "apigee" ব্যবহারকারীর দ্বারা অ্যাক্সেসযোগ্য বা পাঠযোগ্য হতে হবে।

  13. ব্রাউজার উইন্ডোতে নিম্নলিখিত URL খুলে Drupal-এর update.php স্ক্রিপ্ট রান করুন:
    http://portal_IP_DNS:8079/update.php
  14. মেনটেন্যান্স মোড বন্ধ করুন:
    1. Drupal মেনু থেকে কনফিগারেশন বিকল্প বেছে নিন।
    2. কনফিগারেশন পৃষ্ঠায়, ডেভেলপমেন্ট-এর অধীনে মেনটেন্যান্স মোড বেছে নিন।
    3. সাইট রক্ষণাবেক্ষণ মোডে রাখুন বক্স থেকে টিকচিহ্ন সরিয়ে দিন।
    4. কনফিগারেশন সেভ করুন বিকল্প বেছে নিন।

মনে রাখবেন যে আপডেট করার পরে রুট ডিরেক্টরি হল:

/opt/apigee/apigee-drupal/wwwroot

আপগ্রেড করা হয়ে গেছে। Apigee update ইউটিলিটি আপনার Drupal-এর ভার্সন ডাউনগ্রেড করে থাকলে, আপনাকে হয়ত Drupal আপগ্রেড ইউটিলিটি আবার চালাতে হবে। আরও তথ্যের জন্য, Drupal আপগ্রেড আবার রান করুন দেখুন।

Drupal আপগ্রেড আবার রান করুন

Private Cloud-এর জন্য Edge আপগ্রেড করতে Apigee update ইউটিলিটি রান করার ফলে যদি আপনার Drupal ভার্সন ডাউনগ্রেড হয়ে যায়, তাহলে Drupal আপগ্রেড আবার ইনস্টল করুন। আপনি যদি প্রাইভেট ক্লাউড আপডেটের মধ্যে শুধু Drupal আপগ্রেড করেন, তাহলে এটি হতে পারে।

যেমন:

  1. আপনি Edge for Private Cloud-এর 4.18.05 ভার্সন চালাচ্ছিলেন, যার মধ্যে Drupal 7.59 অন্তর্ভুক্ত ছিল।
  2. প্রয়োজনীয় নিরাপত্তা আপডেটের কারণে আপনি Drupal-কে 7.64-এ আপগ্রেড করেছেন।
  3. আপনি এখন Private Cloud-কে 4.19.01-এ আপগ্রেড করছেন, যার মধ্যে Drupal 7.61 অন্তর্ভুক্ত আছে।

এই কেস থেকে বোঝা যায় যে Apigee update ইউটিলিটি দ্বারা ব্যবহৃত Drupal ভার্সন লেটেস্ট Drupal আপগ্রেডকে রেফারেন্স নাও করতে পারে। ফলস্বরূপ, আপনার Drupal ইনস্টলেশনকে পরবর্তী ভার্সনে ফিরিয়ে আনতে, আপনাকে এখন অবশ্যই আপনার Drupal আপগ্রেড আবার চালাতে হবে।