Quy trình này mô tả cách nâng cấp cổng Dịch vụ dành cho nhà phát triển Apigee hiện có (hoặc đơn giản là cổng thông tin) tại cơ sở cài đặt.
Xác định quy trình cập nhật chính xác
Quy trình bạn sử dụng để cập nhật cổng thông tin dựa trên bản cài đặt hiện tại của bạn:
- Nếu bản cài đặt của bạn sử dụng Nginx/Postgres, hãy sử dụng phần Nâng cấp cổng thông tin bằng RPM bên dưới.
- Nếu bản cài đặt của bạn sử dụng Apache/MySQL hoặc Apache/MariaDB, hãy xem phần Chuyển đổi cổng thông tin dựa trên tar thành cổng thông tin dựa trên RPM.
Xác định loại cài đặt hiện tại của bạn
Nếu bạn không chắc chắn về loại cài đặt hiện tại, hãy dùng lệnh sau để xác định:
ls /opt
Nếu đang sử dụng Nginx/Postgres, bạn sẽ thấy các thư mục sau:
/opt/apigeevà/opt/nginx.Nếu bạn đang sử dụng Apache/MySQL hoặc Apache/MariaDB, thì các thư mục này không được xuất hiện.
/opt/apigee/apigee-service/bin/apigee-all status
Nếu đang sử dụng Nginx/Postgres, bạn sẽ thấy kết quả sau:
+ 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
Nếu bạn đang sử dụng Apache/MySQL hoặc Apache/MariaDB, thì lệnh này sẽ trả về thư mục gốc của cổng thông tin, ở dạng:
*:80 192.168.56.102 (/etc/httpd/conf/vhosts/devportal.conf:1)
Thư mục cài đặt mặc định
Quá trình nâng cấp giả định rằng cổng thông tin đã được cài đặt tại:
- 4.17.05 trở lên:
/opt/apigee/apigee-drupal/wwwroot - Trước phiên bản 4.17.05:
/opt/apigee/apigee-drupal(Nginx) hoặc/var/www/html(Apache)
Nếu bạn không cài đặt cổng thông tin trong thư mục mặc định, hãy sửa đổi các đường dẫn trong quy trình dưới đây để sử dụng thư mục cài đặt của bạn.
Các phiên bản nâng cấp được hỗ trợ
Quy trình nâng cấp này được hỗ trợ trên các phiên bản cổng thông tin OPDK-17-01.x trở lên.
Để xác định phiên bản cổng thông tin, hãy mở URL sau trong trình duyệt:
http://yourportal.com/buildInfo
Trước khi bạn cập nhật
Đối với các bản cài đặt hiện có, nếu bạn đã sửa đổi bất kỳ mã nào trong lõi Drupal hoặc trong bất kỳ mô-đun không tuỳ chỉnh nào, thì các nội dung sửa đổi của bạn sẽ bị ghi đè. Điều này bao gồm, trong số những thứ khác, mọi thay đổi
bạn có thể đã thực hiện đối với .htaccess.
Bạn nên giả định rằng mọi nội dung bên ngoài thư mục /sites đều thuộc sở hữu của Drupal. Trường hợp ngoại lệ đối với quy tắc này là robots.txt; nếu tệp này tồn tại trong thư mục gốc của web, thì tệp này sẽ được giữ lại cho bạn.
Trước khi tiến hành cài đặt, hãy sao lưu toàn bộ thư mục gốc của trang web Drupal. Sau khi thực hiện các bước cài đặt được mô tả dưới đây, bạn có thể khôi phục các tuỳ chỉnh của mình từ bản sao lưu.
Nâng cấp cổng thông tin bằng RPM
Cách cập nhật RPM của cổng thông tin trên một nút:
- Thay đổi thành thư mục Drupal, mặc định là
/opt/apigee/apigee-drupal:cd /opt/apigee/apigee-drupal
- Sao lưu phiên bản cơ sở dữ liệu Drupal. Lệnh
pg_dumptạo một bản sao của cơ sở dữ liệu:pg_dump --dbname=devportal --host=host_IP_address --username=drupaladmin --password --format=c > /tmp/portal.dmp
Trong trường hợp:
- devportal là tên cơ sở dữ liệu được chỉ định bởi thuộc tính
PG_NAMEtrong tệp cấu hình cài đặt cổng thông tin. - host_IP_address là địa chỉ IP của nút cổng.
- drupaladmin là tên người dùng Postgres mà cổng thông tin sử dụng để truy cập vào
cơ sở dữ liệu theo chỉ định của thuộc tính
DRUPAL_PG_USERtrong tệp cấu hình cài đặt cổng thông tin.
Bạn sẽ được nhắc nhập mật khẩu người dùng Postgres như được xác định bằng thuộc tính
DRUPAL_PG_PASStrong tệp cấu hình cài đặt cổng thông tin.Nếu sau này bạn muốn khôi phục từ bản sao lưu, hãy dùng lệnh sau:
pg_restore --clean --dbname=devportal --host=localhost --username=apigee < /tmp/portal.dmp
- devportal là tên cơ sở dữ liệu được chỉ định bởi thuộc tính
- Sao lưu toàn bộ thư mục gốc của trang web Drupal. Vị trí cài đặt mặc định là
/opt/apigee/apigee-drupal, nhưng bạn có thể đã thay đổi vị trí này.Nếu bạn không chắc chắn về vị trí của thư mục này, hãy sử dụng lệnh
drush statushoặc mục Configuration > Media > File (Cấu hình > Nội dung nghe nhìn > Tệp) trong trình đơn Drupal để xác định vị trí của hệ thống tệp công khai và đường dẫn hệ thống tệp riêng tư (cho bước tiếp theo). - Tạo bản sao lưu các tệp trong
/opt/apigee/data/apigee-drupal-devportal/private. - Đặt Drupal ở chế độ bảo trì:
- Chọn Configuration (Cấu hình) trong trình đơn Drupal.
- Trên trang Configuration (Cấu hình), hãy chọn Maintenance mode (Chế độ bảo trì) trong phần Development (Phát triển).
- Chọn hộp Chuyển trang web sang chế độ bảo trì.
- Nhập thông báo mà người dùng sẽ thấy trong thời gian bảo trì.
- Chọn Lưu cấu hình.
- Tắt SELinux như mô tả trong phần Cài đặt tiện ích apigee-setup của Edge.
- Chuyển sang thư mục
/opt:cd /opt
- Để nâng cấp trên máy chủ có kết nối Internet:
- Tải tệp Edge 4.19.06
bootstrap_4.19.06.shxuống/tmp/bootstrap_4.19.06.sh:curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
- Cài đặt tiện ích và phần phụ thuộc Edge 4.19.06
apigee-service:sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord
Trong đó uName và pWord là tên người dùng và mật khẩu bạn nhận được từ Apigee. Nếu bỏ qua pWord, bạn sẽ được nhắc nhập thông tin này.
Theo mặc định, trình cài đặt sẽ kiểm tra để đảm bảo bạn đã cài đặt Java 1.8. Bạn có thể sử dụng tuỳ chọn "C" để tiếp tục mà không cần cài đặt Java.
- Tải tệp Edge 4.19.06
- Để nâng cấp trên máy chủ không có kết nối Internet:
- Tạo kho lưu trữ 4.19.06 cục bộ như mô tả trong phần Tạo kho lưu trữ Apigee cục bộ.
- Cách cài đặt apigee-service từ tệp .tar:
- Trên nút có kho lưu trữ cục bộ, hãy sử dụng lệnh sau để đóng gói kho lưu trữ cục bộ thành một tệp .tar có tên là
/opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz:/opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
- Sao chép tệp .tar vào nút mà bạn muốn cập nhật Edge. Ví dụ: sao chép tệp đó
vào thư mục
/tmptrên nút mới. - Trên nút mới, hãy giải nén tệp vào thư mục /tmp:
tar -xzf apigee-4.19.06.tar.gz
Lệnh này tạo một thư mục mới có tên là repos trong thư mục chứa tệp .tar. Ví dụ: /tmp/repos.
- Cài đặt tiện ích và phần phụ thuộc Edge
apigee-servicetừ/tmp/repos:sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos
Lưu ý rằng bạn cần đưa đường dẫn đến thư mục repos vào lệnh này.
- Trên nút có kho lưu trữ cục bộ, hãy sử dụng lệnh sau để đóng gói kho lưu trữ cục bộ thành một tệp .tar có tên là
- Cách cài đặt apigee-service bằng máy chủ web Nginx:
- Định cấu hình máy chủ web Nginx như mô tả trong phần "Cài đặt từ kho lưu trữ bằng máy chủ web Nginx" tại Cài đặt tiện ích apigee-setup của Edge.
- Trên nút từ xa, hãy tải tệp Edge
bootstrap_4.19.06.shxuống/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
Trong đó, uName và pWord là tên người dùng và mật khẩu mà bạn đặt ở trên cho kho lưu trữ, còn remoteRepo là địa chỉ IP hoặc tên DNS của nút kho lưu trữ.
- Trên nút từ xa, hãy cài đặt tiện ích Edge
apigee-servicevà các phần phụ thuộc:sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939 apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://
Trong đó uName và pWord là tên người dùng và mật khẩu của kho lưu trữ.
- Sử dụng
apigee-serviceđể cập nhật tiện íchapigee-setup:/opt/apigee/apigee-service/bin/apigee-service apigee-setup update
- Chạy phần mềm tiện ích
updatetrên nút Postgres:/opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
Trong đó, configFile là tệp cấu hình mà bạn đã dùng để cài đặt cơ sở dữ liệu Postgres. Yêu cầu duy nhất đối với tệp cấu hình là tệp cấu hình phải truy cập được hoặc người dùng "apigee" có thể đọc được.
- Xoá RPM PHP nhưng không xoá các phần phụ thuộc RPM của Apigee Drupal Devportal bằng cách thực thi lệnh sau:
rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')
Lệnh này thực hiện những việc sau:
rpm -ev --nodepsxoá RPM nhưng không xoá các phần phụ thuộc của RPM.rpm -qatạo danh sách RPM cần xoá.grep phptìm kiếm tất cả PHP RPM.awk '{printf "%s ", $1}'in ra tên RPM.
- Chạy tiện ích
updatetrên nút của bạn để cập nhật cổng thông tin:/opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile
Trong đó, configFile là tệp cấu hình mà bạn đã dùng để cài đặt cổng thông tin. Yêu cầu duy nhất đối với tệp cấu hình là người dùng "apigee" phải truy cập hoặc đọc được tệp cấu hình.
- Chạy tập lệnh
update.phpcủa Drupal bằng cách mở URL sau trong cửa sổ trình duyệt:http://portal_IP_DNS:8079/update.php
- Tắt chế độ bảo trì:
- Chọn Configuration (Cấu hình) trong trình đơn Drupal.
- Trên trang Configuration (Cấu hình), hãy chọn Maintenance mode (Chế độ bảo trì) trong phần Development (Phát triển).
- Bỏ chọn hộp Đặt trang web ở chế độ bảo trì.
- Chọn Lưu cấu hình.
Lưu ý rằng thư mục gốc sau khi cập nhật là:
/opt/apigee/apigee-drupal/wwwroot
Quá trình nâng cấp hiện đã hoàn tất. Nếu tiện ích Apigee update hạ cấp phiên bản Drupal của bạn, thì bạn có thể cần chạy lại tiện ích nâng cấp Drupal. Để biết thêm thông tin, hãy xem phần Chạy lại bản nâng cấp Drupal.
Chạy lại bản nâng cấp Drupal
Nếu việc chạy tiện ích Apigee update để nâng cấp Edge cho Đám mây riêng tư thực sự dẫn đến việc hạ cấp phiên bản Drupal, hãy cài đặt lại bản nâng cấp Drupal. Điều này có thể xảy ra nếu bạn chỉ nâng cấp Drupal giữa các bản cập nhật Đám mây riêng tư.
Ví dụ:
- Bạn đang chạy phiên bản 4.18.05 của Edge cho đám mây riêng tư, trong đó có Drupal 7.59.
- Bạn đã nâng cấp Drupal lên phiên bản 7.64 do có bản cập nhật bảo mật bắt buộc.
- Bạn hiện đang nâng cấp Private Cloud lên phiên bản 4.19.01, trong đó có Drupal 7.61.
Như trường hợp này minh hoạ, phiên bản Drupal mà tiện ích Apigee update sử dụng có thể không tham chiếu đến bản nâng cấp Drupal mới nhất. Do đó, giờ đây, bạn phải chạy lại bản nâng cấp Drupal để đưa bản cài đặt Drupal về phiên bản mới hơn.