อัปเกรดพอร์ทัล

ขั้นตอนนี้อธิบายวิธีอัปเกรดการติดตั้งพอร์ทัลบริการสำหรับนักพัฒนาแอป 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 Core หรือโมดูลที่ไม่ได้กำหนดเอง ระบบจะเขียนทับการแก้ไขของคุณ ซึ่งรวมถึงการเปลี่ยนแปลงใดๆ ที่คุณอาจทำกับ .htaccess คุณควรสมมติว่า Drupal เป็นเจ้าของทุกสิ่งที่อยู่นอกไดเรกทอรี /sites robots.txt จะเป็นข้อยกเว้นของกฎนี้ หากไฟล์นี้อยู่ในรูทของเว็บ ระบบจะเก็บไฟล์ไว้ให้คุณ

ก่อนดำเนินการติดตั้ง ให้สำรองข้อมูลไดเรกทอรีรูทของเว็บ Drupal ทั้งหมด หลังจากทำตามขั้นตอนการติดตั้งที่อธิบายไว้ด้านล่างแล้ว คุณจะกู้คืนการปรับแต่งจากข้อมูลสำรองได้

อัปเกรดพอร์ทัลโดยใช้ RPM

วิธีอัปเดต RPM ของพอร์ทัลในโหนด

  1. การเปลี่ยนแปลงในไดเรกทอรี Drupal /opt/apigee/apigee-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 แต่คุณอาจเปลี่ยนตำแหน่งแล้ว

    หากไม่แน่ใจเกี่ยวกับตำแหน่งของไดเรกทอรีนี้ ให้ใช้คำสั่ง drush status หรือรายการ Configuration > Media > File ในเมนู Drupal เพื่อระบุตำแหน่งของระบบไฟล์สาธารณะและเส้นทางระบบไฟล์ส่วนตัว (สำหรับขั้นตอนถัดไป)

  4. สำรองข้อมูลไฟล์ใน /opt/apigee/data/apigee-drupal-devportal/private
  5. ตั้งค่า Drupal เป็นโหมดการบำรุงรักษา ดังนี้
    1. เลือกการกําหนดค่าในเมนู Drupal
    2. ในหน้าการกําหนดค่า ให้เลือกโหมดการบํารุงรักษาในส่วนการพัฒนา
    3. เลือกช่องทำให้เว็บไซต์เข้าสู่โหมดบำรุงรักษา
    4. ป้อนข้อความที่ผู้ใช้จะเห็นระหว่างการบำรุงรักษา
    5. เลือกบันทึกการกำหนดค่า
  6. ปิดใช้ SELinux ตามที่อธิบายไว้ในหัวข้อติดตั้งยูทิลิตี apigee-setup ของ Edge
  7. การเปลี่ยนแปลงในไดเรกทอรี /opt
    cd /opt
  8. สำหรับการอัปเกรดในเซิร์ฟเวอร์ที่มีการเชื่อมต่ออินเทอร์เน็ต
    1. ดาวน์โหลดไฟล์ 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
    2. ติดตั้งยูทิลิตี apigee-service ของ Edge 4.19.06 และข้อกำหนดต่อไปนี้
      sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord

      โดยที่ uName และ pWord คือชื่อผู้ใช้และรหัสผ่านที่คุณได้รับจาก Apigee หากไม่ใส่ pWord ระบบจะแจ้งให้คุณป้อน

      โดยค่าเริ่มต้น โปรแกรมติดตั้งจะตรวจสอบว่าคุณได้ติดตั้ง Java 1.8 แล้ว คุณสามารถใช้ตัวเลือก "C" เพื่อดำเนินการต่อโดยไม่ต้องติดตั้ง Java

  9. สำหรับการอัปเกรดในเซิร์ฟเวอร์ที่ไม่มีการเชื่อมต่ออินเทอร์เน็ต
    1. สร้างที่เก็บ 4.19.06 ในพื้นที่ตามที่อธิบายไว้ในสร้างที่เก็บ Apigee ในพื้นที่
    2. วิธีติดตั้ง apigee-service จากไฟล์ .tar
      1. ในโหนดที่มีที่เก็บข้อมูลในเครื่อง ให้ใช้คำสั่งต่อไปนี้เพื่อจัดแพ็กเกจที่เก็บข้อมูลในเครื่องเป็นไฟล์ .tar ไฟล์เดียวที่มีชื่อว่า /opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz
        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. คัดลอกไฟล์ .tar ไปยังโหนดที่ต้องการอัปเดต Edge เช่น คัดลอกไฟล์ไปยังไดเรกทอรี /tmp ในโหนดใหม่
      3. ในโหนดใหม่ ให้ยกเลิกการอัปโหลดไฟล์ไปยังไดเรกทอรี /tmp:
        tar -xzf apigee-4.19.06.tar.gz

        คำสั่งนี้จะสร้างไดเรกทอรีใหม่ชื่อ repos ในไดเรกทอรีที่มีไฟล์ .tar เช่น /tmp/repos

      4. ติดตั้งยูทิลิตี apigee-service ของ Edge และไลบรารีที่เกี่ยวข้องจาก /tmp/repos ดังนี้
        sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        คุณจะเห็นว่าใส่เส้นทางไปยังไดเรกทอรี repos ในคำสั่งนี้

    3. วิธีติดตั้ง apigee-service โดยใช้เว็บเซิร์ฟเวอร์ Nginx
      1. กำหนดค่าเว็บเซิร์ฟเวอร์ Nginx ตามที่อธิบายไว้ใน "ติดตั้งจากรีโปโดยใช้เว็บเซิร์ฟเวอร์ Nginx" ที่หัวข้อติดตั้งยูทิลิตี apigee-setup ของ Edge
      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. ในโหนดระยะไกล ให้ติดตั้งยูทิลิตี apigee-service ของ Edge และข้อกำหนดต่อไปนี้
        sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939
          apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        โดยที่ uName และ pWord คือชื่อผู้ใช้และรหัสผ่านของรีโป

  10. ใช้ apigee-service เพื่ออัปเดตยูทิลิตี apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  11. เรียกใช้ยูทิลิตี update ในโหนด Postgres โดยทำดังนี้
    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    โดยที่ configFile คือไฟล์การกําหนดค่าที่คุณใช้ติดตั้งฐานข้อมูล Postgres ข้อกำหนดเพียงอย่างเดียวสำหรับไฟล์การกําหนดค่าคือผู้ใช้ "apigee" ต้องเข้าถึงหรืออ่านไฟล์การกําหนดค่าได้

  12. นำ RPM ของ PHP ออก แต่ไม่นำ RPM ของ Apigee Drupal Devportal ออกโดยเรียกใช้คำสั่งต่อไปนี้
    rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')

    คำสั่งนี้จะทําสิ่งต่อไปนี้

    • rpm -ev --nodeps จะนํา RPM ออก แต่ไม่นํารายการที่ RPM นั้นใช้ร่วมกันออก
    • rpm -qa สร้างรายการ RPM ที่จะนําออก
    • grep php ค้นหา RPM ทั้งหมดเป็น PHP
    • awk '{printf "%s ", $1}' จะพิมพ์ชื่อ RPM
  13. เรียกใช้ยูทิลิตี update ในโหนดเพื่ออัปเดตพอร์ทัล โดยทำดังนี้
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

    โดยที่ configFile คือไฟล์การกำหนดค่าที่คุณใช้ติดตั้งพอร์ทัล ข้อกำหนดเพียงอย่างเดียวสำหรับไฟล์การกําหนดค่าคือผู้ใช้ "apigee" ต้องเข้าถึงหรืออ่านไฟล์การกําหนดค่าได้

  14. เรียกใช้สคริปต์ update.php ของ Drupal โดยเปิด URL ต่อไปนี้ในหน้าต่างเบราว์เซอร์
    http://portal_IP_DNS:8079/update.php
  15. ปิดใช้โหมดการบำรุงรักษาโดยทำดังนี้
    1. เลือก Configuration ในเมนู Drupal
    2. ในหน้าการกําหนดค่า ให้เลือกโหมดการบํารุงรักษาในส่วนการพัฒนา
    3. ยกเลิกการเลือกช่องทำให้เว็บไซต์อยู่ในโหมดการบำรุงรักษา
    4. เลือกบันทึกการกำหนดค่า

โปรดทราบว่าไดเรกทอรีรูทหลังจากการอัปเดตจะเป็นดังนี้

/opt/apigee/apigee-drupal/wwwroot

การอัปเกรดเสร็จสมบูรณ์แล้ว หากยูทิลิตี Apigee update ดาวน์เกรด Drupal ของคุณ คุณอาจต้องเรียกใช้ยูทิลิตีการอัปเกรด Drupal อีกครั้ง ดูข้อมูลเพิ่มเติมได้ที่ เรียกใช้การอัปเกรด Drupal อีกครั้ง

เรียกใช้การอัปเกรด Drupal อีกครั้ง

หากการเรียกใช้ยูทิลิตี update ของ Apigee เพื่ออัปเกรด Edge สำหรับ Private Cloud ส่งผลให้มีการดาวน์เกรดเวอร์ชัน Drupal ให้ติดตั้งการอัปเกรด Drupal อีกครั้ง กรณีนี้อาจเกิดขึ้นหากคุณอัปเกรดเฉพาะ Drupal ระหว่างการอัปเดต Private Cloud

เช่น

  1. คุณใช้ Edge สำหรับ Private Cloud เวอร์ชัน 4.18.05 ซึ่งมี Drupal 7.59
  2. คุณได้อัปเกรด Drupal เป็น 7.64 เนื่องจากการอัปเดตความปลอดภัยที่จำเป็น
  3. ตอนนี้คุณกำลังอัปเกรด Private Cloud เป็น 4.19.01 ซึ่งมี Drupal 7.61 รวมอยู่ด้วย

ดังที่กรณีนี้แสดงให้เห็นว่าเวอร์ชัน Drupal ที่ยูทิลิตี update ของ Apigee ใช้อาจไม่ได้อ้างอิงถึงการอัปเกรด Drupal ครั้งล่าสุด คุณจึงต้องเรียกใช้การอัปเกรด Drupal อีกครั้งเพื่อเปลี่ยนการติดตั้ง Drupal กลับไปเป็นเวอร์ชันที่ใหม่กว่า