Edge for Private Cloud v. 4.17.09
After you install the Edge apigee-setup utility on a node, use the apigee-setup utility to install one or more Edge components on the node.
The apigee-setup utility uses a command in the form:
> /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
where component is the Edge component to install, and configFile is the silent configuration file containing the installation information. The configuration file must be accessible or readable by the "apigee" user. For example, you can create a new directory for the files, place them in the /usr/local or /usr/local/share directory, or anywhere else on the node accessible by the "apigee" user.
For example, to install the Edge Management Server:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f /usr/local/myConfig
Installation considerations
As you write your config file, take into consideration the following options.
Setting up Postgres master-standby replication
By default, Edge installs all Postgres nodes in master mode. However, in production systems with multiple Postgres nodes, you must configure them to use master-standby replication so that if the master node fails, the standby node can continue to serve traffic.
You can enable and configure master-standby replication at install time by using properties in the silent config file. Or, you can enable master-standby replication after installation. For more, see Set up Master-Standby Replication for Postgres.
Enabling Cassandra authentication
By default, Cassandra installs without authentication enabled. That means anyone can access Cassandra. You can enable authentication after installing Edge, or as part of the installation process.
For more, see Enable Cassandra authentication.
Using a protected port when creating a virtual host
If you want to create a virtual host that binds the Router to a protected port, such as port numbers less than 1000, then you have to configure the Router to run as a user with access to those ports. By default, the Router runs as the user "apigee" which does not have access to privileged ports.
For information about how to confgure a virtual host and Router to access ports below 1000, see Setting up a virtual host.
Specifying the components to install
The following table lists the options you pass to the -p option of the apigee-service utility to specify which components to install on the node:
Component |
Description |
---|---|
c |
Install Cassandra only. |
zk | install ZooKeeper only. |
ds |
Install ZooKeeper and Cassandra. |
ld |
Install OpenLDAP only. |
ms |
Install Edge Management Server, which also installs the Edge UI and OpenLDAP. If you set USE_LDAP_REMOTE_HOST=y in the config file, then OpenLDAP installation is skipped and the Management Server uses OpenLDAP installed on a different node. |
r |
Install Edge Router only. |
mp |
Install Edge Message Processor only. |
rmp |
Install Edge Router and Message Processor. |
ui |
Install the Edge UI. |
qs |
Install Qpid Server only. |
ps |
Install Postgres Server only. |
pdb | Install Postgres database only - used only when installing the Developer Services portal. See Developer Services portal installation. |
sax |
Install the analytics components, meaning Qpid and Postgres. Use this option for development and testing only, not for production. |
sso | Install the Edge SSO module. |
mo |
Install Monetization. |
sa |
Install Edge standalone, meaning Cassandra, ZooKeeper, Management Server, OpenLDAP, Edge UI, Router, and Message Processor. This option omits the Edge analytics components: Qpid and Postgres. Use this option for development and testing only, not for production. |
aio |
Install all components on a single node. Use this option for development and testing only, not for production. |
dp |
Install the Developer Services portal. |
Creating a configuration file
The configuration file contains all the information necessary to install Edge. You can often use the same configuration file to install all components in an Edge installation.
However, you will have to use different configuration files, or modify your configuration file, if:
- You are installing multiple OpenLDAP servers and need to configure replication as part of a 13-node installation. Each file requires different values for LDAP_SID and LDAP_PEER.
- You are creating multiple data centers as part of a 12-node installation. Each data center requires different settings for properties such as ZK_CLIENT_HOSTS and CASS_HOSTS.
Each installation topology described below shows an example config file for that topology. For a complete reference on the config file, see Edge Configuration File Reference.
Installation log files
By default, the setup.sh utility writes log information about the installation to:
/opt/apigee/var/log/apigee-setup/setup.log
If the user running the setup.sh utility does not have access to that directory, it writes the log to the /tmp directory as a file named setup_username.log.
If the user does not have access to /tmp, the setup.sh utility fails.
Install Edge components
This section describes how to install Edge components for the different topologies. The order of component installation is based on your desired topology.
All of the installation example shown below assume that you are installing:
- With Cassandra authentication disabled (default). See Enable Cassandra authentication for more.
- With Postgres master-standby replication disabled (default). See Set up Master-Standby Replication for Postgres for more.
- Message Processor and Router on the same node. If you install the Message Processors and Routers on different nodes, install all the Message Processors first, and then all the Routers.
All-in-one Installation
- Install all components on a single node using the command:
> /opt/apigee/apigee-setup/bin/setup.sh -p aio -f configFile - Test the installation as described at Test the install.
- Onboard your organization as described at Onboard an organization.
Shown below is a silent configuration file for this topology. For a complete reference on the config file, see Edge Configuration File Reference.
# With SMTP IP1=IPorDNSnameOfNode HOSTIP=$(hostname -i) ENABLE_SYSTEM_CHECK=y ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt MSIP=$IP1 LDAP_TYPE=1 APIGEE_LDAPPW=secret MP_POD=gateway REGION=dc-1 ZK_HOSTS="$IP1" ZK_CLIENT_HOSTS="$IP1" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1" # Default is postgres PG_PWD=postgres SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com # omit for no username SMTPPASSWORD=smtppwd # omit for no password SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>"
2-host standalone installation
See Installation Topologies for the list of Edge topologies and node numbers.
- Install Standalone Gateway and node 1
> /opt/apigee/apigee-setup/bin/setup.sh -p sa -f configFile - Install Analytics on node 2:
> /opt/apigee/apigee-setup/bin/setup.sh -p sax -f configFile - Test the installation as described at Test the install.
- Onboard your organization as described at Onboard an organization.
Shown below is a silent configuration file for this topology. For a complete reference on the config file, see Edge Configuration File Reference.
# With SMTP IP1=IPorDNSnameOfNode1 HOSTIP=$(hostname -i) ENABLE_SYSTEM_CHECK=y ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt MSIP=$IP1 LDAP_TYPE=1 APIGEE_LDAPPW=secret MP_POD=gateway REGION=dc-1 ZK_HOSTS="$IP1" ZK_CLIENT_HOSTS="$IP1" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1" # Default is postgres PG_PWD=postgres SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com # omit for no username SMTPPASSWORD=smtppwd # omit for no password SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>"
5-host clustered installation
See Installation Topologies for the list of Edge topologies and node numbers.
- Install Datastore cluster on nodes 1, 2 and 3:
> /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile - Install Management Server on node 1:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile - Install Router and Message Processor on nodes 2 and 3:
> /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile - Install Analytics on node 4 and 5:
> /opt/apigee/apigee-setup/bin/setup.sh -p sax -f configFile - Test the installation as described at Test the install.
- Onboard your organization as described at Onboard an organization.
Shown below is a silent configuration file for this topology. For a complete reference on the config file, see Edge Configuration File Reference.
# With SMTP IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP4=IPorDNSnameOfNode4 IP5=IPorDNSnameOfNode5 HOSTIP=$(hostname -i) ENABLE_SYSTEM_CHECK=y ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt MSIP=$IP1 USE_LDAP_REMOTE_HOST=n LDAP_TYPE=1 APIGEE_LDAPPW=secret MP_POD=gateway REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1 $IP2 $IP3" # Default is postgres PG_PWD=postgres PG_MASTER=$IP4 PG_STANDBY=$IP5 SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com # omit for no username SMTPPASSWORD=smtppwd # omit for no password SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>"
9-host clustered installation
See Installation Topologies for the list of Edge topologies and node numbers.
- Install Datastore Cluster Node on node 1, 2 and 3:
> /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile - Install Apigee Management Server on node 1:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile - Install Router and Message Processor on nodes 4 and 5:
> /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile - Install Apigee Analytics Qpid Server on node 6 and 7:
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile - Install Apigee Analytics Postgres Server on node 8 and 9:
> /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile - Test the installation as described at Test the install.
- Onboard your organization as described at Onboard an organization.
Shown below is a silent configuration file for this topology. For a complete reference on the config file, see Edge Configuration File Reference.
# With SMTP IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) ENABLE_SYSTEM_CHECK=y ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt MSIP=$IP1 USE_LDAP_REMOTE_HOST=n LDAP_TYPE=1 APIGEE_LDAPPW=secret MP_POD=gateway REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1 $IP2 $IP3" # Default is postgres PG_PWD=postgres SKIP_SMTP=n PG_MASTER=$IP8 PG_STANDBY=$IP9 SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com # omit for no username SMTPPASSWORD=smtppwd # omit for no password SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>"
13-host clustered installation
See Installation Topologies for the list of Edge topologies and node numbers.
- Install Datastore Cluster Node on node 1, 2 and 3:
> /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile - Install OpenLDAP on node 4 and 5:
> /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configFile - Install Apigee Management Server on node 6 and 7:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile - Install Apigee Analytics Postgres Server on node 8 and 9:
> /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile - Install Router and Message Processor on nodes 10 and 11:
> /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile - Install Apigee Analytics Qpid Server on node 12 and 13:
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile - Test the installation as described at Test the install.
- Onboard your organization as described at Onboard an organization.
Shown below is a silent configuration file for this topology. For a complete reference on the config file, see Edge Configuration File Reference.
# For all components except OpenLDAP IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP4=IPorDNSnameOfNode4 IP5=IPorDNSnameOfNode5 IP6=IPorDNSnameOfNode6 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) ENABLE_SYSTEM_CHECK=y ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt # First Management Server on IP6 MSIP=$IP6 USE_LDAP_REMOTE_HOST=y LDAP_HOST=$IP4 LDAP_PORT=10389 # Second Management Server on IP7 # MSIP=$IP7 # USE_LDAP_REMOTE_HOST=y # LDAP_HOST=$IP5 # LDAP_PORT=10389 # Same password for both OpenLDAPs. APIGEE_LDAPPW=secret MP_POD=gateway REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1 $IP2 $IP3" # Default is postgres PG_PWD=postgres PG_MASTER=$IP8 PG_STANDBY=$IP9 SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com # omit for no username SMTPPASSWORD=smtppwd # omit for no password SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
# For OpenLDAP on IP4 and IP5 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP4=IPorDNSnameOfNode4 IP5=IPorDNSnameOfNode5 IP6=IPorDNSnameOfNode6 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) ENABLE_SYSTEM_CHECK=y ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 # First OpenLDAP Server on IP4 MSIP=$IP6 USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=1 LDAP_PEER=$IP5 # Second OpenLDAP Server on IP5 # MSIP=$IP7 # USE_LDAP_REMOTE_HOST=n # LDAP_TYPE=2 # LDAP_SID=2 # LDAP_PEER=$IP4 # Set same password for both OpenLDAPs. APIGEE_LDAPPW=secret |
12-host clustered installation
Before you install Edge on a12-host clustered topology (two data centers), you must understand how to set the ZooKeeper and Cassandra properties in the silent config file.
- ZooKeeper
For the ZK_HOSTS property for both data centers, specify the IP addresses or DNS names of all ZooKeeper nodes from both data centers, in the same order, and mark any nodes with the with “:observer” modifier. Nodes without the “:observer” modifier are called "voters". You must have an odd number of "voters" in your configuration.
In this topology, the ZooKeeper host on host 9 is the observer:
For the ZK_CLIENT_HOSTS property for each data center, specify the IP addresses or DNS names of only the ZooKeeper nodes in the data center, in the same order, for all ZooKeeper nodes in the data center. In the example configuration file shown below, node 9 is tagged with the “:observer” modifier so that you have five voters: Nodes 1, 2, 3, 7, and 8. - Cassandra
All datacenters must to have the same number of Cassandra nodes.
For CASS_HOSTS for each data center, ensure that you specify all Cassandra IP addresses (not DNS names) for both data centers. For data center 1, list the Cassandra nodes in that data center first. For data center 2, list the Cassandra nodes in that data center first. List the Cassandra nodes in the same order for all Cassandra nodes in the data center.
All Cassandra nodes must have a suffix ':<d>,<r>', for example '<ip>:1,1 = datacenter 1 and rack/availability zone 1 and '<ip>:2,1 = datacenter 2 and rack/availability zone 1.
For example, "192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.124.205:2,1 192.168.124.206:2,1"
The first node in rack/availability zone 1 of each datacenter will be used as the seed server.
In this deployment model, Cassandra setup will look like this:
See Installation Topologies for the list of Edge topologies and node numbers.
- Install Datastore Cluster Node on node 1, 2, 3, 7, 8, and 9:
> /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile - Install Apigee Management Server with OpenLDAP replication on node 1 and 7:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile - Install Router and Message Processor on nodes 2, 3, 8 and 9:
> /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile - Install Apigee Analytics Qpid Server on node 4, 5, 10, and 11:
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile - Install Apigee Analytics Postgres Server on node 6 and 12:
> /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile - Test the installation as described at Test the install.
- Onboard your organization as described at Onboard an organization.
Shown below is a silent configuration file for this topology. Notice that this config file. For a complete reference on the config file, see Edge Configuration File Reference.
- Configures OpenLDAP with replication across two OpenLDAP nodes.
- Specifies the “:observer” modifier on one ZooKeeper node. In a single data center installation, omit that modifier.
# Datacenter 1 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP6=IPorDNSnameOfNode6 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 IP12=IPorDNSnameOfNode12 HOSTIP=$(hostname -i) MSIP=$IP1 ENABLE_SYSTEM_CHECK=y ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=1 LDAP_PEER=$IP7 APIGEE_LDAPPW=secret MP_POD=gateway-1 REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1" # Default is postgres PG_PWD=postgres PG_MASTER=$IP6 PG_STANDBY=$IP12 SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com # omit for no username SMTPPASSWORD=smtppwd # omit for no password SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
# Datacenter 2 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP6=IPorDNSnameOfNode6 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 IP12=IPorDNSnameOfNode12 HOSTIP=$(hostname -i) MSIP=$IP7 ENABLE_SYSTEM_CHECK=y ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=2 LDAP_PEER=$IP1 APIGEE_LDAPPW=secret MP_POD=gateway-2 REGION=dc-2 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1" # Default is postgres PG_PWD=postgres PG_MASTER=$IP6 PG_STANDBY=$IP12 SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com # omit for no username SMTPPASSWORD=smtppwd # omit for no password SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |