Nâng cấp cổng

Quy trình này mô tả cách nâng cấp một cổng dịch vụ hiện có cho nhà phát triển Apigee (hay đơn giản là cổng dịch vụ) cài đặt tại chỗ.

Xác định quy trình cập nhật chính xác

Quy trình cập nhật cổng thông tin mà bạn sử dụng dựa trên chế độ cài đặt hiện tại của bạn:

Xác định loại chế độ cài đặt hiện tại

Nếu bạn không chắc chắn về kiểu cài đặt hiện tại, hãy dùng lệnh sau để xác định kiểu cài đặt đó:

  • ls /opt

    Nếu đang sử dụng Nginx/Postgres, bạn sẽ thấy các thư mục sau: /opt/apigee/opt/nginx.

    Nếu bạn đang dùng Apache/MySQL hoặc Apache/MariaDB, thì bạn không nên hiển thị những thư mục này.

  • /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 web của cổng thông tin, có 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 đã đượ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 đường dẫn theo quy trình dưới đây để sử dụng thư mục cài đặt.

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 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 của bạn, 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 lượt 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, nội dung sửa đổi của bạn sẽ bị ghi đè. Điều này bao gồm mọi thay đổi mà bạn có thể đã thực hiện đối với .htaccess và nhiều nội dung khác. Bạn nên giả định rằng mọi tệp nằm ngoài thư mục /sites đều thuộc sở hữu của Drupal. Một 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ữ nguyên cho bạn.

Trước khi tiếp tục 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 như mô tả bên dưới, bạn có thể khôi phục các nội dung 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 cho một nút:

  1. Thay đổi đối với thư mục Drupal, /opt/apigee/apigee-drupal theo mặc định:
    cd /opt/apigee/apigee-drupal
  2. Sao lưu phiên bản cơ sở dữ liệu Drupal. Lệnh pg_dump tạ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 do thuộc tính PG_NAME chỉ định trong 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 thông tin.
    • drupaladmin là tên người dùng Postgres mà cổng thông tin sử dụng để truy cập cơ sở dữ liệu do thuộc tính DRUPAL_PG_USER chỉ định trong 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 theo quy định của thuộc tính DRUPAL_PG_PASS trong tệp cấu hình cài đặt cổng thông tin.

    Nếu sau đó bạn muốn khôi phục từ bản sao lưu, hãy sử dụng lệnh sau:

    pg_restore --clean --dbname=devportal --host=localhost  --username=apigee < /tmp/portal.dmp
  3. 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 status hoặc mục Cấu hình > Nội dung đa phương tiệ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).

  4. Sao lưu các tệp trong /opt/apigee/data/apigee-drupal-devportal/private.
  5. Đặt Drupal ở chế độ bảo trì:
    1. Chọn Cấu hình trong trình đơn Drupal.
    2. Trên trang Cấu hình, hãy chọn Chế độ bảo trì trong phần Phát triển.
    3. Chọn hộp Đặt trang web vào chế độ bảo trì.
    4. Nhập thông báo mà người dùng thấy trong thời gian bảo trì.
    5. Chọn Lưu cấu hình.
  6. Tắt SELinux như mô tả trong phần Cài đặt tiện ích thiết lập apigee của Edge.
  7. Thay đổi đối với thư mục /opt:
    cd /opt
  8. Đối với bản nâng cấp trên máy chủ có kết nối Internet:
    1. Tải tệp bootstrap_4.19.06.sh của Edge 4.19.06 xuống /tmp/bootstrap_4.19.06.sh:
      curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
    2. Cài đặt tiện ích và phần phụ thuộc apigee-service của Edge 4.19.06:
      sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord

      Trong đó uNamepWord là tên người dùng và mật khẩu mà bạn nhận được từ Apigee. Nếu bỏ qua pWord, bạn sẽ được nhắc nhập mã này.

      Theo mặc định, trình cài đặt sẽ kiểm tra xem bạn đã cài đặt Java 1.8 hay chưa. Bạn có thể dùng tuỳ chọn "C" để tiếp tục mà không cần cài đặt Java.

  9. Đối với bản nâng cấp trên máy chủ không có kết nối Internet:
    1. Tạo một bản repo 4.19.06 cục bộ như mô tả trong phần Tạo kho lưu trữ Apigee cục bộ.
    2. Cách cài đặt dịch vụ apigee từ tệp .tar:
      1. Trên nút có kho lưu trữ cục bộ, hãy dùng lệnh sau để đóng gói kho lưu trữ cục bộ vào 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
      2. 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 mã đó vào thư mục /tmp trên nút mới.
      3. Trên nút mới, hãy huỷ lưu trữ 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 repos trong thư mục chứa tệp .tar. Ví dụ: /tmp/repos.

      4. Cài đặt tiện ích apigee-service và các phần phụ thuộc của Edge từ /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.

    3. Cách cài đặt dịch vụ API bằng máy chủ web Nginx:
      1. Đị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 cách sử dụng máy chủ web Nginx" tại phần Cài đặt tiện ích thiết lập API Edge.
      2. Trên nút từ xa, hãy tải tệp Edge bootstrap_4.19.06.sh xuố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 đó uNamepWord 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ữ.

      3. Trên nút từ xa, cài đặt tiện ích và phần phụ thuộc của Edge apigee-service:
        sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939
          apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        Trong đó uNamepWord là tên người dùng và mật khẩu của kho lưu trữ.

  10. Sử dụng apigee-service để cập nhật tiện ích apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  11. Chạy tiện ích update trê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à người dùng "apigee" phải truy cập được hoặc đọc được tệp cấu hình.

  12. Xoá RPM PHP nhưng không xoá phần phụ thuộc RPM dành cho nhà phát triển của Apigee Drupal 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 --nodeps sẽ xoá các RPM nhưng không xoá phần phụ thuộc của chúng.
    • rpm -qa tạo danh sách RPM cần loại bỏ.
    • grep php tìm kiếm tất cả RPM RPM.
    • awk '{printf "%s ", $1}' in ra tên RPM.
  13. Chạy tiện ích update trê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 đã sử 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 được hoặc đọc được tệp cấu hình.

  14. Chạy tập lệnh update.php của Drupal bằng cách mở URL sau trong một cửa sổ trình duyệt:
    http://portal_IP_DNS:8079/update.php
  15. Tắt chế độ bảo trì:
    1. Chọn Cấu hình trong trình đơn Drupal.
    2. Trên trang Cấu hình, hãy chọn Chế độ bảo trì trong phần Phát triển.
    3. Bỏ chọn hộp Đặt trang web vào chế độ bảo trì.
    4. Chọn Lưu cấu hình.

Lưu ý 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 bài viết 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 update của Apigee để 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 lần cập nhật Đám mây riêng tư.

Ví dụ:

  1. Bạn đang chạy phiên bản 4.18.05 của Edge cho Đám mây riêng tư, bao gồm cả Drupal 7.59.
  2. Bạn đã nâng cấp Drupal lên 7.64 do một bản cập nhật bảo mật bắt buộc.
  3. Bạn đang nâng cấp Đám mây riêng tư lên 4.19.01, bao gồm cả Drupal 7.61.

Như trong trường hợp này, phiên bản Drupal mà tiện ích update của Apigee sử dụng có thể không đề cập đến bản nâng cấp mới nhất của Drupal. Do đó, giờ đây, bạn phải chạy lại bản nâng cấp Drupal để trả về bản cài đặt Drupal về phiên bản mới hơn.