ขั้นตอนนี้อธิบายวิธีอัปเกรดการติดตั้งพอร์ทัลบริการสำหรับนักพัฒนาแอป Apigee (หรือเรียกง่ายๆ ว่าพอร์ทัล) ที่มีอยู่ในพื้นที่ทำงาน
ระบุขั้นตอนการอัปเดตที่ถูกต้อง
ขั้นตอนที่คุณใช้อัปเดตพอร์ทัลจะอิงตามการติดตั้งปัจจุบัน ดังนี้
- หากการติดตั้งใช้ Nginx/Postgres ให้ใช้การอัปเกรดพอร์ทัลโดยใช้ RPM ด้านล่าง
- หากการติดตั้งใช้ Apache/MySQL หรือ Apache/MariaDB โปรดดูแปลงพอร์ทัลแบบ tar เป็นพอร์ทัลที่ใช้ RPM
ระบุประเภทการติดตั้งปัจจุบันของคุณ
หากไม่แน่ใจเกี่ยวกับประเภทการติดตั้งปัจจุบัน ให้ใช้คําสั่งต่อไปนี้เพื่อระบุประเภท
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 ของพอร์ทัลในโหนด
- การเปลี่ยนแปลงในไดเรกทอรี Drupal
/opt/apigee/apigee-drupal
โดยค่าเริ่มต้นมีดังนี้cd /opt/apigee/apigee-drupal
- สำรองข้อมูลอินสแตนซ์ฐานข้อมูล 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
- devportal คือชื่อฐานข้อมูลที่ระบุโดยพร็อพเพอร์ตี้
- สำรองข้อมูลไดเรกทอรีรูทของเว็บ Drupal ทั้งหมด ตำแหน่งการติดตั้งเริ่มต้นคือ
/opt/apigee/apigee-drupal
แต่คุณอาจเปลี่ยนตำแหน่งแล้วหากไม่แน่ใจเกี่ยวกับตำแหน่งของไดเรกทอรีนี้ ให้ใช้คำสั่ง
drush status
หรือรายการ Configuration > Media > File ในเมนู Drupal เพื่อระบุตำแหน่งของระบบไฟล์สาธารณะและเส้นทางระบบไฟล์ส่วนตัว (สำหรับขั้นตอนถัดไป) - สำรองข้อมูลไฟล์ใน
/opt/apigee/data/apigee-drupal-devportal/private
- ตั้งค่า Drupal เป็นโหมดการบำรุงรักษา ดังนี้
- เลือกการกําหนดค่าในเมนู Drupal
- ในหน้าการกําหนดค่า ให้เลือกโหมดการบํารุงรักษาในส่วนการพัฒนา
- เลือกช่องทำให้เว็บไซต์เข้าสู่โหมดบำรุงรักษา
- ป้อนข้อความที่ผู้ใช้จะเห็นระหว่างการบำรุงรักษา
- เลือกบันทึกการกำหนดค่า
- ปิดใช้ SELinux ตามที่อธิบายไว้ในหัวข้อติดตั้งยูทิลิตี apigee-setup ของ Edge
- การเปลี่ยนแปลงในไดเรกทอรี
/opt
cd /opt
- สำหรับการอัปเกรดในเซิร์ฟเวอร์ที่มีการเชื่อมต่ออินเทอร์เน็ต
- ดาวน์โหลดไฟล์ 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
- ติดตั้งยูทิลิตี
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
- ดาวน์โหลดไฟล์ Edge 4.19.06
- สำหรับการอัปเกรดในเซิร์ฟเวอร์ที่ไม่มีการเชื่อมต่ออินเทอร์เน็ต
- สร้างที่เก็บ 4.19.06 ในพื้นที่ตามที่อธิบายไว้ในสร้างที่เก็บ Apigee ในพื้นที่
- วิธีติดตั้ง apigee-service จากไฟล์ .tar
- ในโหนดที่มีที่เก็บข้อมูลในเครื่อง ให้ใช้คำสั่งต่อไปนี้เพื่อจัดแพ็กเกจที่เก็บข้อมูลในเครื่องเป็นไฟล์ .tar ไฟล์เดียวที่มีชื่อว่า
/opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz
/opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
- คัดลอกไฟล์ .tar ไปยังโหนดที่ต้องการอัปเดต Edge เช่น คัดลอกไฟล์ไปยังไดเรกทอรี
/tmp
ในโหนดใหม่ - ในโหนดใหม่ ให้ยกเลิกการอัปโหลดไฟล์ไปยังไดเรกทอรี /tmp:
tar -xzf apigee-4.19.06.tar.gz
คำสั่งนี้จะสร้างไดเรกทอรีใหม่ชื่อ repos ในไดเรกทอรีที่มีไฟล์ .tar เช่น /tmp/repos
- ติดตั้งยูทิลิตี
apigee-service
ของ Edge และไลบรารีที่เกี่ยวข้องจาก/tmp/repos
ดังนี้sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos
คุณจะเห็นว่าใส่เส้นทางไปยังไดเรกทอรี repos ในคำสั่งนี้
- ในโหนดที่มีที่เก็บข้อมูลในเครื่อง ให้ใช้คำสั่งต่อไปนี้เพื่อจัดแพ็กเกจที่เก็บข้อมูลในเครื่องเป็นไฟล์ .tar ไฟล์เดียวที่มีชื่อว่า
- วิธีติดตั้ง apigee-service โดยใช้เว็บเซิร์ฟเวอร์ Nginx
- กำหนดค่าเว็บเซิร์ฟเวอร์ Nginx ตามที่อธิบายไว้ใน "ติดตั้งจากรีโปโดยใช้เว็บเซิร์ฟเวอร์ Nginx" ที่หัวข้อติดตั้งยูทิลิตี apigee-setup ของ Edge
- ในโหนดระยะไกล ให้ดาวน์โหลดไฟล์ 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 ของโหนดรีโป
- ในโหนดระยะไกล ให้ติดตั้งยูทิลิตี
apigee-service
ของ Edge และข้อกำหนดต่อไปนี้sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939 apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://
โดยที่ uName และ pWord คือชื่อผู้ใช้และรหัสผ่านของรีโป
- ใช้
apigee-service
เพื่ออัปเดตยูทิลิตีapigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup update
- เรียกใช้ยูทิลิตี
update
ในโหนด Postgres โดยทำดังนี้/opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
โดยที่ configFile คือไฟล์การกําหนดค่าที่คุณใช้ติดตั้งฐานข้อมูล Postgres ข้อกำหนดเพียงอย่างเดียวสำหรับไฟล์การกําหนดค่าคือผู้ใช้ "apigee" ต้องเข้าถึงหรืออ่านไฟล์การกําหนดค่าได้
- นำ 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 ทั้งหมดเป็น PHPawk '{printf "%s ", $1}'
จะพิมพ์ชื่อ RPM
- เรียกใช้ยูทิลิตี
update
ในโหนดเพื่ออัปเดตพอร์ทัล โดยทำดังนี้/opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile
โดยที่ configFile คือไฟล์การกำหนดค่าที่คุณใช้ติดตั้งพอร์ทัล ข้อกำหนดเพียงอย่างเดียวสำหรับไฟล์การกําหนดค่าคือผู้ใช้ "apigee" ต้องเข้าถึงหรืออ่านไฟล์การกําหนดค่าได้
- เรียกใช้สคริปต์
update.php
ของ Drupal โดยเปิด URL ต่อไปนี้ในหน้าต่างเบราว์เซอร์http://portal_IP_DNS:8079/update.php
- ปิดใช้โหมดการบำรุงรักษาโดยทำดังนี้
- เลือก Configuration ในเมนู Drupal
- ในหน้าการกําหนดค่า ให้เลือกโหมดการบํารุงรักษาในส่วนการพัฒนา
- ยกเลิกการเลือกช่องทำให้เว็บไซต์อยู่ในโหมดการบำรุงรักษา
- เลือกบันทึกการกำหนดค่า
โปรดทราบว่าไดเรกทอรีรูทหลังจากการอัปเดตจะเป็นดังนี้
/opt/apigee/apigee-drupal/wwwroot
การอัปเกรดเสร็จสมบูรณ์แล้ว หากยูทิลิตี Apigee update
ดาวน์เกรด Drupal ของคุณ คุณอาจต้องเรียกใช้ยูทิลิตีการอัปเกรด Drupal อีกครั้ง ดูข้อมูลเพิ่มเติมได้ที่
เรียกใช้การอัปเกรด Drupal อีกครั้ง
เรียกใช้การอัปเกรด Drupal อีกครั้ง
หากการเรียกใช้ยูทิลิตี update
ของ Apigee เพื่ออัปเกรด Edge สำหรับ Private Cloud ส่งผลให้มีการดาวน์เกรดเวอร์ชัน Drupal ให้ติดตั้งการอัปเกรด Drupal อีกครั้ง กรณีนี้อาจเกิดขึ้นหากคุณอัปเกรดเฉพาะ Drupal ระหว่างการอัปเดต Private Cloud
เช่น
- คุณใช้ Edge สำหรับ Private Cloud เวอร์ชัน 4.18.05 ซึ่งมี Drupal 7.59
- คุณได้อัปเกรด Drupal เป็น 7.64 เนื่องจากการอัปเดตความปลอดภัยที่จำเป็น
- ตอนนี้คุณกำลังอัปเกรด Private Cloud เป็น 4.19.01 ซึ่งมี Drupal 7.61 รวมอยู่ด้วย
ดังที่กรณีนี้แสดงให้เห็นว่าเวอร์ชัน Drupal ที่ยูทิลิตี update
ของ Apigee ใช้อาจไม่ได้อ้างอิงถึงการอัปเกรด Drupal ครั้งล่าสุด คุณจึงต้องเรียกใช้การอัปเกรด Drupal อีกครั้งเพื่อเปลี่ยนการติดตั้ง Drupal กลับไปเป็นเวอร์ชันที่ใหม่กว่า