ขั้นตอนนี้จะอธิบายวิธีอัปเกรดพอร์ทัลบริการสำหรับนักพัฒนาซอฟต์แวร์ 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
คุณควรสรุปไว้ว่าทุกอย่างที่อยู่นอกไดเรกทอรี /sites
เป็นของ Drupal ข้อยกเว้นสำหรับกฎนี้คือ 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
หรือรายการ การกำหนดค่า > สื่อ > ไฟล์ ในเมนู Drupal เพื่อระบุตำแหน่งของระบบไฟล์สาธารณะและเส้นทางระบบไฟล์ส่วนตัว (สำหรับขั้นตอนถัดไป) - สำรองไฟล์ใน
/opt/apigee/data/apigee-drupal-devportal/private
- ตั้งค่า Drupal เป็นโหมดการบำรุงรักษา
- เลือก Configuration ในเมนู Drupal
- ในหน้าการกำหนดค่า ให้เลือกโหมดการบำรุงรักษาภายใต้การพัฒนา
- เลือกช่องทำให้เว็บไซต์อยู่ในโหมดบำรุงรักษา
- ป้อนข้อความที่ผู้ใช้เห็นระหว่างการบำรุงรักษา
- เลือกบันทึกการกำหนดค่า
- ปิดใช้ SELinux ตามที่อธิบายไว้ในติดตั้งยูทิลิตี Edge Apigee-setup
- เปลี่ยนเป็นไดเรกทอรี
/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
- ติดตั้งยูทิลิตีและทรัพยากร Dependency ของ 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 หรือไม่ คุณใช้ตัวเลือก "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
- ติดตั้งยูทิลิตี Edge
apigee-service
และการอ้างอิงจาก/tmp/repos
:sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos
โปรดสังเกตว่าคุณใส่เส้นทางไปยังไดเรกทอรี Repos ในคำสั่งนี้
- บนโหนดที่มีที่เก็บในเครื่อง ให้ใช้คำสั่งต่อไปนี้เพื่อแพ็กเกจที่เก็บในเครื่องลงในไฟล์ .tar ไฟล์เดียวที่ชื่อ
- วิธีติดตั้ง Apigee-service โดยใช้เว็บเซิร์ฟเวอร์ Nginx
- กำหนดค่าเว็บเซิร์ฟเวอร์ Nginx ตามที่อธิบายไว้ใน "ติดตั้งจากที่เก็บโดยใช้เว็บเซิร์ฟเวอร์ Nginx" ที่ติดตั้งยูทิลิตี Edge apigee-setup
- ในโหนดระยะไกล ให้ดาวน์โหลดไฟล์ 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
Edgeapigee-service
และทรัพยากร Dependency ในโหนดระยะไกล: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 ออกแต่ยกเว้นทรัพยากร Devport Devportal RPM ของ Apigee Drupal โดยใช้คำสั่งต่อไปนี้
rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')
คำสั่งนี้จะมีลักษณะดังนี้
rpm -ev --nodeps
จะนำ RPM ออกแต่ไม่ทรัพยากร Dependencyrpm -qa
จะสร้างรายการ RPM ที่จะนำออกgrep php
ค้นหา RPM ของ PHP ทั้งหมดawk '{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 อีกครั้ง
หากการเรียกใช้ยูทิลิตี Apigee update
เพื่ออัปเกรด 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 กลับไปเป็นเวอร์ชันที่ใหม่กว่า