Cài đặt API BaaS 7 máy chủ và 10 máy chủ

Edge cho đám mây riêng tư phiên bản 4.16.05

Sử dụng trình cân bằng tải

Bản cài đặt chính thức của API BaaS sử dụng trình cân bằng tải giữa nút Cổng API BaaS và các nút Ngăn xếp API BaaS. Khi định cấu hình Cổng thông tin, bạn chỉ định địa chỉ IP hoặc tên DNS của bộ cân bằng tải, chứ không phải của các nút Stack.

Thay vì dùng bộ cân bằng tải, bạn có thể dùng DNS vòng tròn. Trong trường hợp này, bạn tạo một mục DNS có nhiều bản ghi A tương ứng với địa chỉ IP của ngăn xếp BaaS. Trong quá trình tra cứu DNS, máy chủ DNS sẽ tự động trả về các giá trị bản ghi A theo kiểu vòng tròn.

Kết nối với Cassandra

Khi cài đặt BaaS, bạn có thể chọn kết nối BaaS và Edge với cùng một cụm Cassandra hoặc tạo một cụm Cassandra riêng cho BaaS. Các lượt cài đặt BaaS nhỏ hơn, tức là những lượt cài đặt có lưu lượng truy cập thấp hơn, thường dùng chung một cụm Cassandra với Edge.

Để có thông lượng cao và khả năng hoạt động cao, hoặc để tách các cụm Cassandra thành các vùng mạng khác nhau, Apigee khuyên bạn nên sử dụng các cụm Cassandra riêng biệt. Các cụm riêng biệt sẽ tối đa hoá hiệu suất nếu bạn đang gặp phải tải lưu lượng truy cập cao trên BaaS.

Đồng bộ hoá ngày

Bạn phải đồng bộ hoá ngày/giờ trên tất cả các máy chủ. Nếu chưa được định cấu hình, tiện ích "ntpdate" có thể phục vụ mục đích này, giúp xác minh xem các máy chủ có được đồng bộ hoá thời gian hay không. Bạn có thể dùng lệnh "yum install ntp" để cài đặt tiện ích này.

Bảo mật Tomcat

Trình cài đặt API BaaS cũng cài đặt máy chủ Apache Tomcat trên tất cả các nút Ngăn xếp API BaaS, bao gồm cả giao diện người dùng quản trị viên Tomcat. Trình cài đặt giữ nguyên thông tin đăng nhập mặc định của quản trị viên là admin:admin.

Nếu cần, bạn có thể thay đổi các thông tin đăng nhập này để bảo mật Tomcat. Để biết thêm thông tin, hãy xem:

Tổng quan về quy trình cài đặt

Sau khi bạn cài đặt tiện ích apigee-setup của Edge trên một nút, hãy sử dụng tiện ích đó để cài đặt một hoặc nhiều thành phần BaaS trên nút đó. Tiện ích apigee-setup có dạng như sau:

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

Truyền tệp cấu hình đến tiện ích apigee-setup chứa thông tin về quá trình cài đặt. Nếu tệp cấu hình thiếu bất kỳ thông tin bắt buộc nào, thì tiện ích apigee-setup sẽ nhắc bạn nhập thông tin đó trên dòng lệnh.

Yêu cầu duy nhất là người dùng "apigee" phải truy cập hoặc đọc được tệp cấu hình. Ví dụ: đặt tệp vào thư mục /tmp trên nút.

Ví dụ: sử dụng lệnh sau để cài đặt API BaaS Stack:

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig

Tiện ích setup.sh của Apigee hỗ trợ một số tuỳ chọn để cài đặt các thành phần API BaaS. Hướng dẫn dưới đây sử dụng các tuỳ chọn độc lập (c, e, b và p) nhưng bạn có thể sử dụng các tuỳ chọn khác dựa trên cấu hình nút của mình:

Lựa chọn

Nội dung mô tả

e

Chỉ cài đặt ElasticSearch.

b

Chỉ cài đặt API BaaS Stack, cũng cài đặt Tomcat.

p

Chỉ cài đặt Cổng API BaaS, cổng này cũng cài đặt bộ định tuyến Nginx để dùng làm máy chủ web.

c

Chỉ cài đặt Cassandra.

eb

Cài đặt ElasticSearch, API BaaS Stack và Tomcat trên nút.

ebp

Cài đặt ElasticSearch, API BaaS Portal, API BaaS Stack và Tomcat. Cổng thông tin này rất gọn nhẹ nên không cần thêm tài nguyên nào khác.

asa

Cài đặt tất cả thành phần API trên một nút (Cassandra, Elasticsearch, API BaaS Stack và API BaaS Portal). Chỉ sử dụng tuỳ chọn này cho mục đích phát triển và thử nghiệm, không dùng cho môi trường phát hành công khai.

Tạo tệp cấu hình tự động

Dưới đây là ví dụ về tệp cấu hình tự động cho một bản cài đặt API BaaS 10 nút. Chỉnh sửa tệp này nếu cần cho cấu hình của bạn. Sử dụng tuỳ chọn -f cho setup.sh để thêm tệp này.

# Specify IP address or DNS name of node.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra (shared with Edge or standalone)

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWrod

# Only if you are installing Cassandra.
# Specify Cassandra configuration information.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:1,1 $IP9:1,1 $IP10:1,1"

# If connecting to existing Cassandra nodes, 
# specify Cassandra IPs.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP8 $IP9 $IP10"

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name.
BAAS_CASS_LOCALDC=dc-1    # Default is dc-1.

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For example, for dc-1 with three Cassandra nodes, it is dc-1:3.
BAAS_CASS_REPLICATION=dc-1:3

# ElasticSearch IPs or DNS names, separated by spaces.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y

Bảng sau đây trình bày thông tin bổ sung về các thuộc tính này:

Thuộc tính

Lưu ý

CASS_HOSTS

Nếu bạn đang cài đặt Cassandra, hãy chỉ định IP nút Cassandra (không phải tên DNS) và bao gồm đối tượng sửa đổi ":dc,ra" chỉ định trung tâm dữ liệu và giá đỡ của Nút Cassandra.

Ví dụ: "192.168.124.201:1,1" = trung tâm dữ liệu 1 và giá đỡ/vùng có sẵn 1, và "192.168.124.204:2,1" = trung tâm dữ liệu 2 và giá đỡ/vùng có sẵn 1.

CASS_USERNAME
CASS_PASSWORD

Tên người dùng và mật khẩu Cassandra.

Nếu tính năng xác thực Cassandra bị tắt, bạn vẫn phải truyền các giá trị này. Tuy nhiên, các giá trị này sẽ bị bỏ qua.

BAAS_CASS_LOCALDC

Tên khu vực phải có dạng dc-#, trong đó # tương ứng với một giá trị số nguyên.

Ví dụ: dc-1, dc-2, v.v. Nếu đang kết nối với một cụm Cassandra được cài đặt bằng Edge, bạn có thể yêu cầu quản trị viên hệ thống Edge cung cấp giá trị này. Trong một lượt cài đặt trung tâm dữ liệu đơn lẻ của Edge, giá trị mặc định là dc-1.

Nếu bạn đã cài đặt Cassandra trong quá trình cài đặt API BaaS, thì trong quá trình cài đặt Cassandra, bạn đã thêm đối tượng sửa đổi ":dc,ra" vào địa chỉ IP của Cassandra. Giá trị đầu tiên "dc" là số trung tâm dữ liệu. Tên trung tâm dữ liệu là chuỗi "dc-" với số trung tâm dữ liệu làm hậu tố.

BAAS_CASS_REPLICATION

Định dạng là "dataCenterName:#CassandraNodes". Ví dụ: đối với dc-1 có 3 nút Cassandra, thì giá trị này là dc-1:3.

BAAS_USERGRID_URL

Trong môi trường thực tế, đây là URL và cổng của trình cân bằng tải nằm trước các nút API BaaS Stack, ở dạng:

http://myStackLoadBalancer:8443

Trong môi trường kiểm thử hoặc môi trường phát triển, nơi bạn chỉ có một nút API BaaS Stack, đây có thể là URL và số cổng của nút API BaaS Stack, ở dạng:

http://stackIPorDNS:8080

Số cổng cho máy chủ API BaaS Stack là 8080.

BAAS_PORTAL_URL

URL và số cổng của trình cân bằng tải, nếu có một trình cân bằng tải trước Cổng, ở dạng:

http://myPortalLoadBalancer:8443

Nếu không có trình cân bằng tải, URL và số cổng của nút Cổng, ở dạng:

http://portalIPorDNS:9000

Theo mặc định, số cổng cho Cổng API BaaS là 9000.

BAAS_PORTAL_LISTEN_PORT

Số cổng cho máy chủ Cổng API BaaS là 9000. Nếu cổng này không dùng được, hãy chỉ định một cổng khác.

Nếu bạn đang đặt BAAS_PORTAL_URL thành URL của nút Cổng, thì số cổng phải giống nhau cho cả hai thuộc tính.

Không bắt buộc – Cài đặt Cassandra: Máy 8, 9 và 10

Mặc dù bạn có thể kết nối API BaaS với cùng một cụm Cassandra như Edge sử dụng, nhưng Apigee khuyên bạn nên sử dụng các cụm riêng biệt.

Cụm Cassandra có thể sử dụng phương thức xác thực hoặc bạn có thể tắt phương thức xác thực Cassandra. Hãy xem phần Bật tính năng xác thực Cassandra để biết thêm thông tin.

  1. Cài đặt tiện ích apigee-setup của Edge trên nút bằng cách sử dụng quy trình có Internet hoặc không có Internet. Hãy xem phần Cài đặt tiện ích apigee-setup của Edge để biết thêm thông tin.
  2. Tại dấu nhắc lệnh, hãy chạy tập lệnh thiết lập:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

    Tuỳ chọn "-p c" chỉ định cài đặt Cassandra.
    Người dùng "apigee" phải truy cập hoặc đọc được tệp cấu hình. Ví dụ: đặt tệp vào thư mục /tmp trên nút.

Cấu hình này hoàn tất thành công quá trình thiết lập kho dữ liệu trên nút.

Xin lưu ý rằng JMX được bật theo mặc định cho Cassandra. Quyền truy cập từ xa JMX vào Cassandra không yêu cầu mật khẩu. Bạn có thể định cấu hình Cassandra để sử dụng phương thức xác thực cho JMX. Để biết thêm thông tin, hãy xem bài viết Cách giám sát.

Thiết lập dịch vụ chạy ngầm theo thời gian định trước của Cassandra

Thiết lập một dịch vụ chạy ngầm theo thời gian định trước sử dụng nodetool để xoá các khoá chạy mỗi giờ trên mọi nút Cassandra.

Nếu bạn có nhiều nút Cassandra, hãy bù trừ dịch vụ chạy ngầm theo thời gian định trước trên mỗi máy chủ 5 phút để tất cả các nút không xả dữ liệu cùng một lúc.

Dịch vụ chạy ngầm theo thời gian định trước phải thực thi lệnh sau:

/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks

trong đó IP_address là địa chỉ IP của nút Cassandra.

Cài đặt ElasticSearch: Máy 1, 2 và 3

Cách cài đặt ElasticSearch:

  1. Cài đặt tiện ích apigee-setup của Edge trên nút bằng quy trình có Internet hoặc không có Internet. Xem phần Cài đặt tiện ích apigee-setup của Edge để biết thêm thông tin.
  2. Tại dấu nhắc lệnh, hãy chạy tập lệnh thiết lập:
    > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    Tuỳ chọn "-p e" chỉ định cài đặt ElasticSearch.
    Người dùng "apigee" phải truy cập hoặc đọc được tệp cấu hình. Ví dụ: đặt tệp vào thư mục /tmp trên nút.
  3. (Không bắt buộc) Nếu bạn cài đặt ElasticSearch trên một nút độc lập, tức là nút này không được cài đặt bằng API BaaS Stack, sau đó điều chỉnh tuỳ chọn bộ nhớ mặc định để tăng phân bổ bộ nhớ cho ElasticSearch từ 4 GB lên 6 GB:
    1. Mở /opt/apigee/customer/application/elasticsearch.properties trong trình chỉnh sửa. Nếu tệp này không tồn tại, hãy tạo tệp.
    2. Đặt thuộc tính setenv_elasticsearch_max_mem_size thành 6g (mặc định là 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. Lưu tệp.
    4. Chạy lệnh sau:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

Cấu hình hoàn tất thành công quá trình thiết lập trên nút.

Cài đặt API BaaS Stack: Máy 4, 5 và 6

Cách cài đặt API BaaS Stack:

  1. Cài đặt tiện ích apigee-setup của Edge trên nút bằng quy trình có Internet hoặc không có Internet. Xem phần Cài đặt tiện ích apigee-setup của Edge để biết thêm thông tin.
  2. Tại dấu nhắc lệnh, hãy chạy tập lệnh thiết lập:
    > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    Tuỳ chọn "-p b" chỉ định cài đặt API BaaS Stack.
    Người dùng "apigee" phải truy cập hoặc đọc được tệp cấu hình. Ví dụ: đặt tệp vào thư mục /tmp trên nút.

Sau khi trình cài đặt tìm nạp thông tin đăng nhập quản trị viên chính xác, trình cài đặt sẽ cài đặt Tomcat, tạo không gian khoá API BaaS và thiết lập Ngăn xếp API BaaS trên máy chủ. SMTP cũng được định cấu hình để cho phép giao diện người dùng gửi email xác nhận mật khẩu.

Cài đặt Cổng API BaaS: Máy 7

Cách cài đặt Cổng API BaaS:

  1. Cài đặt tiện ích apigee-setup của Edge trên nút bằng quy trình có Internet hoặc không có Internet. Xem phần Cài đặt tiện ích apigee-setup của Edge để biết thêm thông tin.
  2. Tại dấu nhắc lệnh, hãy chạy tập lệnh thiết lập:
    > /opt/apigee/setup/bin/setup.sh -p p -f configFile

    Tuỳ chọn "-p p" chỉ định cài đặt Cổng API BaaS.
    Người dùng "apigee" phải truy cập hoặc đọc được tệp cấu hình. Ví dụ: đặt tệp vào thư mục /tmp trên nút.

Trình cài đặt sẽ khởi động máy chủ web Nginx rồi hoàn tất cấu hình Cổng API BaaS.

Ghi lại URL của Cổng API BaaS. Đây là URL mà bạn nhập vào trình duyệt để truy cập vào giao diện người dùng của Cổng API BaaS.

Định cấu hình các nút API BaaS cho một bộ cân bằng tải Stack hoặc Portal

Nếu thêm một trình cân bằng tải trước các nút Stack hoặc Portal, bạn phải định cấu hình các nút đó bằng URL chính xác của trình cân bằng tải. Ví dụ: các nút Ngăn xếp cần thông tin này khi:

  • Đưa URL vào phản hồi trong các yêu cầu API BaaS.
  • Thêm đường liên kết vào mẫu email khi đặt lại mật khẩu hoặc gửi các thông báo khác.
  • Chuyển hướng người dùng đến các trang cụ thể trên Cổng thông tin.

Nếu bạn sử dụng trình cân bằng tải trước các nút Ngăn xếp, hãy đặt các thuộc tính sau trong /opt/apigee/customer/application/usergrid.properties:

usergrid-deployment_swagger.basepath=http://localhost:8080
usergrid-deployment_usergrid.organization.activation.url=http://localhost:8080/management/organizations/%s/activate
usergrid-deployment_usergrid.admin.activation.url=http://localhost:8080/management/users/%s/activate
usergrid-deployment_usergrid.admin.resetpw.url=http://localhost:8080/management/users/%s/resetpw
usergrid-deployment_usergrid.admin.confirmation.url=http://localhost:8080/management/users/%s/confirm
usergrid-deployment_usergrid.user.activation.url=http://localhost:8080/%s/%s/users/%s/activate
usergrid-deployment_usergrid.user.confirmation.url=http://localhost:8080/%s/%s/users/%s/confirm
usergrid-deployment_usergrid.user.resetpw.url=http://localhost:8080/%s/%s/users/%s/resetpw

Thay thế http://localhost:8080 bằng URL của trình cân bằng tải. Nếu trình cân bằng tải được định cấu hình để sử dụng TLS, hãy sử dụng giao thức HTTPS. Bạn chỉ cần thêm cổng nếu đang sử dụng cổng không chuẩn, tức là cổng khác với cổng 80 cho HTTP và cổng 443 cho HTTPS.

Bạn cũng phải đặt thuộc tính sau trong /opt/apigee/customer/application/portal.properties nếu bạn sử dụng trình cân bằng tải trước các nút Stack:

baas.portal.config.overrideUrl=http://localhost:8080

Thay thế http://localhost:8080 bằng URL của trình cân bằng tải cho Ngăn xếp.

Nếu bạn sử dụng trình cân bằng tải trước nút Cổng, hãy đặt các thuộc tính sau trong usergrid.properties:

usergrid-deployment_usergrid.view.management.organizations.organization.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.organizations.organization.confirm=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.confirm=http://localhost:9000

Thay thế http://localhost:9000 bằng URL của trình cân bằng tải. Nếu trình cân bằng tải được định cấu hình để sử dụng TLS, hãy sử dụng giao thức HTTPS. Bạn chỉ cần thêm cổng nếu đang sử dụng cổng không chuẩn, tức là cổng khác với cổng 80 cho HTTP và cổng 443 cho HTTPS.

Sau khi chỉnh sửa usergrid.properties và portal.properties:

  1. Định cấu hình nút Ngăn xếp:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Triển khai các thay đổi cho Tomcat:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy
  3. Khởi động lại BaaS Stack:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  4. Nếu bạn đã sửa đổi portal.properties, hãy định cấu hình nút Cổng:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure
  5. Triển khai các thay đổi:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy
  6. Khởi động lại Cổng BaaS:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal restart

Đăng ký một tổ chức mới

Đăng ký là quy trình tạo tổ chức và quản trị viên tổ chức. Sau khi tạo tổ chức và quản trị viên tổ chức, bạn có thể đăng nhập vào giao diện người dùng của Cổng API BaaS và gửi yêu cầu đến API REST của API BaaS.

Khi bạn tạo một tổ chức, địa chỉ email của quản trị viên tổ chức:

  • Phải khác với địa chỉ email của quản trị viên hệ thống.
  • Phải là duy nhất trong số tất cả các tổ chức khác. Tức là bạn không thể tạo hai tổ chức có cùng địa chỉ email cho quản trị viên tổ chức. Tuy nhiên, sau khi tạo tổ chức, bạn có thể thêm các quản trị viên khác và những quản trị viên này có thể được sao chép trên nhiều tổ chức.

Để thực hiện quy trình làm quen, hãy sử dụng tập lệnh Python create_org_and_user.py. Việc gọi tập lệnh này mà không có đối số dòng lệnh sẽ khiến tập lệnh nhắc bạn cung cấp tất cả thông tin:

> python create_org_and_user.py

Ngoài ra, bạn có thể truyền bất kỳ hoặc tất cả các tuỳ chọn dưới dạng đối số dòng lệnh. Bạn sẽ được nhắc cung cấp mọi thông tin mà bạn bỏ qua trong dòng lệnh:

> python create_org_and_user.py -o '<org name>'
> python create_org_and_user.py -o '<org name>' -a '<new admin email>' -p '<new admin password>'

Cách tạo tổ chức:

  1. Thay đổi thư mục thành /opt/apigee/baas-usergrid/bin.
  2. Gọi tập lệnh Python create_org_and_user.py.
    Bạn được nhắc nhập tên người dùng và mật khẩu của quản trị viên hệ thống BaaS để chỉ quản trị viên hệ thống mới có thể chạy công cụ này.
  3. Đăng nhập vào Cổng API BaaS trong trình duyệt web bằng URL mà bạn đã ghi chú ở cuối quá trình cài đặt URL Cổng API BaaS. Để truy cập vào cổng thông tin, hãy nhập URL của Cổng thông tin API BaaS vào biểu mẫu:
    http://{portalExternalIP}:9000/

    Lưu ý: IP là địa chỉ IP/tên máy chủ bên ngoài của máy Cổng thông tin. Đảm bảo rằng cổng đó đang mở.
  4. Khi màn hình đăng nhập cổng thông tin xuất hiện, bạn có thể:
    • Đăng nhập bằng tên người dùng và mật khẩu của quản trị viên tổ chức.
    • Đăng nhập bằng tên người dùng và mật khẩu của quản trị viên hệ thống.

Truy cập vào API REST của API BaaS

Để truy cập vào API REST của API BaaS, hãy sử dụng URL ở dạng:

https://{loadBalancerIP}:8080/{your-org}/{your-app}

Trong môi trường phát triển, bạn có thể cài đặt tất cả thành phần API BaaS trên một nút, nghĩa là bạn có một Ngăn xếp API BaaS duy nhất. Hoặc bạn có thể có một môi trường nhỏ với một nút API BaaS Stack và không có trình cân bằng tải. Trong các loại môi trường này, bạn có thể thực hiện lệnh gọi API trực tiếp đến nút Ngăn xếp BaaS API:

curl -v "http://portalExternalIP:8080/status"

Để biết thêm thông tin về cách bắt đầu sử dụng Cổng API BaaS, hãy xem tài liệu về Apigee tại: http://apigee.com/docs/content/build-apps-home.