ขั้นตอนนี้อธิบายวิธีอัปเกรดพอร์ทัลบริการสำหรับนักพัฒนาซอฟต์แวร์ 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-drupalcd /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 เป็นโหมดการบำรุงรักษาโดยทำดังนี้
- เลือกการกำหนดค่าในเมนู 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
- ติดตั้งยูทิลิตี Edge 4.19.06
apigee-serviceและทรัพยากร Dependency ดังนี้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ในโหนดใหม่ - ในโหนดใหม่ ให้แตกไฟล์ tar ไปยังไดเรกทอรี /tmp โดยทำดังนี้
tar -xzf apigee-4.19.06.tar.gz
คำสั่งนี้จะสร้างไดเรกทอรีใหม่ชื่อ repos ในไดเรกทอรีที่มีไฟล์ .tar เช่น /tmp/repos
- ติดตั้งยูทิลิตี Edge
apigee-serviceและทรัพยากร Dependency จาก/tmp/reposโดยทำดังนี้sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/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 ของโหนดที่เก็บ
- ในโหนดระยะไกล ให้ติดตั้งยูทิลิตี Edge
apigee-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" ต้องเข้าถึงหรืออ่านไฟล์การกำหนดค่าได้
- นำ PHP RPM ออก แต่ไม่นำทรัพยากร Dependency ของ Apigee Drupal Devportal RPM ออกโดยเรียกใช้คำสั่งต่อไปนี้
rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')
คำสั่งนี้จะดำเนินการต่อไปนี้
rpm -ev --nodepsจะนำ RPM ออก แต่ไม่นำทรัพยากร Dependency ออกrpm -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
- ปิดใช้โหมดการบำรุงรักษาโดยทำดังนี้
- เลือกการกำหนดค่าในเมนู Drupal
- ในหน้าการกำหนดค่า ให้เลือกโหมดการบำรุงรักษาในส่วนการพัฒนา
- ยกเลิกการเลือกช่องกำหนดให้เว็บไซต์อยู่ในโหมดการบำรุงรักษา
- เลือกบันทึกการกำหนดค่า
โปรดทราบว่าไดเรกทอรีรากหลังการอัปเดตคือ
/opt/apigee/apigee-drupal/wwwroot
การอัปเกรดเสร็จสมบูรณ์แล้ว หากยูทิลิตี Apigee update ดาวน์เกรด Drupal เวอร์ชันของคุณ คุณอาจต้องเรียกใช้ยูทิลิตีอัปเกรด Drupal อีกครั้ง ดูข้อมูลเพิ่มเติมได้ที่เรียกใช้การอัปเกรด Drupal อีกครั้ง
เรียกใช้การอัปเกรด Drupal อีกครั้ง
หากการเรียกใช้ยูทิลิตี Apigee update เพื่ออัปเกรด Edge สำหรับ Private Cloud ส่งผลให้เกิดการดาวน์เกรดเวอร์ชัน Drupal ให้ติดตั้งการอัปเกรด Drupal อีกครั้ง กรณีนี้อาจเกิดขึ้นหากคุณอัปเกรดเฉพาะ Drupal ระหว่างการอัปเดต Private Cloud
เช่น
- คุณใช้ Edge for Private Cloud เวอร์ชัน 4.18.05 ซึ่งมี Drupal 7.59
- คุณอัปเกรด Drupal เป็น 7.64 เนื่องจากการอัปเดตความปลอดภัยที่จำเป็น
- ตอนนี้คุณกำลังอัปเกรด Private Cloud เป็น 4.19.01 ซึ่งรวม Drupal 7.61 ไว้ด้วย
ดังที่กรณีนี้แสดงให้เห็น เวอร์ชัน Drupal ที่ยูทิลิตี Apigee update ใช้อาจไม่ได้อ้างอิงถึงการอัปเกรด Drupal ล่าสุด ด้วยเหตุนี้ คุณจึงต้องเรียกใช้การอัปเกรด Drupal อีกครั้งเพื่อคืนค่าการติดตั้ง Drupal เป็นเวอร์ชันที่ใหม่กว่า