> [!CAUTION]
> **Caution:** This documentation covers Edge for Private Cloud 4.18.05, which is no longer supported. Google does not provide security patches, bug fixes, or technical support for this version. The current supported version is 4.54.00. See the [Edge for Private Cloud documentation](https://docs.apigee.com/private-cloud/latest/overview) for the current version, or [All versions](https://docs.apigee.com/private-cloud/versions) to compare releases.

*Edge for Private Cloud v4.18.05*

This section describes how to perform the following upgrades:

- From 4.17.05 to 4.18.05
- From 4.17.09 to 4.18.05

#### All Upgrade Paths

The following table shows you the upgrade paths for version 4.18.05:

|   ||
|---|---|
| From 4.18.01 | Directly [upgrade from 4.18.01 → 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-41801-41805) |
| From 4.17.09 | Directly [upgrade from 4.17.09 → 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805) |
| From 4.17.05 | Directly [upgrade from 4.17.05 → 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805) |
| From 4.17.01 | [Upgrade from 4.17.01 → 4.18.01](https://docs.apigee.com/private-cloud/v4.18.01/update-apigee-edge-4170x-41801), then [upgrade from 4.18.01 → 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-41801-41805) |
| From 4.16.09 | [Upgrade from 4.16.09 → 4.18.01](https://docs.apigee.com/private-cloud/v4.18.01/update-apigee-edge-41609-41801), then [upgrade from 4.18.01 → 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-41801-41805) |
| From 4.16.05 | [Upgrade from 4.16.05 → 4.18.01](https://docs.apigee.com/private-cloud/v4.18.01/update-apigee-edge-4160141605-41801), then [upgrade from 4.18.01 → 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-41801-41805) |
| From 4.16.01 | [Upgrade from 4.16.01 → 4.18.01](https://docs.apigee.com/private-cloud/v4.18.01/update-apigee-edge-4160141605-41801), then [upgrade from 4.18.01 → 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-41801-41805) |
| From 4.15.0x | [Upgrade from 4.15.0x → 4.16.01, then upgrade from 4.16.01 → 4.18.01](https://docs.apigee.com/private-cloud/v4.18.01/update-apigee-edge-4160141605-41801), then [upgrade from 4.18.01 → 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-41801-41805) |

## Who can perform the update

The user running the update should be the same as the user who originally installed Edge, or a
user running as root.

After you install the Edge RPMs, any user can configure them.

## Which components must you update

You must update all Edge components. Edge does not support a setup that contains components
from multiple versions.

## Maintain compatibility

When upgrading Apigee Edge for Private Cloud to 4.18.05, you must ensure that the resulting
implementation only references supported properties in its configuration files.

> [!WARNING]
> **Warning:** **Check your implementation for backwards compatibility**
>
> You must change or remove the following properties in your configuration files during the
> upgrade process. Failure to do so could affect your implementation's compatibility with the
> new version.

| Property | Location | Description |
|---|---|---|
| `conf_load_balancing_load.balancing. driver.nginx.server.retry` | `router.properties` | Remove this property from your `router.properties` file. To set retry options in 4.18.05, use the [virtual host configuration properties](https://docs.apigee.com/api-platform/fundamentals/virtual-host-property-reference#virtualhostconfigurationproperties). |

## Automatic propagation of property
settings

If you have set any properties by editing `.properties` files in
`/opt/apigee/customer/application` then these values are retained by the update.

## Required addition of SMTPMAILFROM
configuration parameter

Edge 4.17.05 added a new required parameter to the configuration file used when you enable
an SMTP server.

## Required upgrade to Postgres 9.6

This release of Edge includes an upgrade to Postgres 9.6. As part of that upgrade, all
Postgres data is migrated to the Postgres 9.6.

Most Edge production systems use two Postgres nodes configured for master-standby replication.
During the update process, while the Postgres nodes are down for update, analytics data is still
written to the Qpid nodes. After the Postgres nodes are updated and back online, analytics data
is then pushed to the Postgres nodes.

The way you perform the Postgres update depends on how you configured data storage for your
Postgres nodes:

- **If you use local data storage for your Postgres nodes** , you must install a new Postgres standby node for the duration of the upgrade. After the upgrade completes, you can decommission the new Postgres standby node.

  The additional Postgres standby node is required if you have to roll back the update
  for any reason. If you have to roll back the update, the new Postgres standby node
  becomes the master Postgres node after the rollback. Therefore, when you install the
  new Postgres standby node, it should be on a node that meets all the hardware
  requirements of a Postgres server, as defined in the Edge
  [Installation Requirements](https://docs.apigee.com/private-cloud/v4.18.05/installation-requirements).

  In a 1-node and 2-node installation of Edge, topologies used for prototyping and testing, you
  only have a single Postgres node. You can update these Postgres nodes directly without having
  to create a new Postgres node.
- **If you use network storage for your Postgres nodes** , as recommended by Apigee, you do not have to install a new Postgres node. In the procedures below, you can skip the steps that specify to install and later decommission a new Postgres standby node.

  Before you begin the update process, take a network snapshot of the data store used by
  Postgres. Then, if any errors occur during update and you are forced to perform a roll back,
  you can restore the Postgres node from that snapshot.

### Installing a new Postgres
standby node

This procedure creates a Postgres standby server on a new node. Ensure that you install a new
Postgres standby server for your **existing** version of Edge (4.17.05 or 4.17.09),
not for version 4.18.05.

To perform the install, use the same config file that you used to install your current version
of Edge.

To create a new Postgres standby node:

1. On the current Postgres master, edit the `/opt/apigee/customer/application/postgresql.properties` file to set the following token. If that file does not exist, create it:

   ```
   conf_pg_hba_replication.connection=host replication apigee existing_slave_ip/32 trust\ \nhost replication apigee new_slave_ip/32 trust
   ```

   Where <var translate="no">existing_slave_ip</var> is the IP address of the current Postgres
   standby server and <var translate="no">new_slave_ip</var> is the IP address of the new standby node.
2. Restart `apigee-postgresql` on the Postgres master:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
   ```
3. Verify that the new standby node was added by viewing the `/opt/apigee/apigee-postgresql/conf/pg_hba.conf` file on the master. You should see the following lines in that file:

   ```
   host replication apigee existing_slave_ip/32 trust
   host replication apigee new_slave_ip/32 trust
   ```
4. Install the new Postgres standby server:
   1. Edit the config file that you used to install your current version of Edge to specify the following:

      ```
      # IP address of the current master:
      PG_MASTER=192.168.56.103
      # IP address of the new standby node
      PG_STANDBY=192.168.56.102
      ```
   2. Disable SELinux as described in [Install the Edge apigee-setup utility](https://docs.apigee.com/private-cloud/v4.18.05/install-edge-apigee-setup-utility).
   3. Download the Edge bootstrap_4.17.0<var translate="no">x</var>.sh file, where <var translate="no">x</var> is either **5** (for 4.17.05) or **9** (for 4.17.09) to `/tmp/bootstrap_4.17.0x.sh `:

      ```
      curl https://software.apigee.com/bootstrap_4.17.0x.sh -o /tmp/bootstrap_4.17.0x.sh
      ```
   4. Install the Edge `apigee-service` utility and dependencies:

      ```
      sudo bash /tmp/bootstrap_4.17.0x.sh apigeeuser=uName apigeepassword=pWord
      ```
   5. Use `apigee-service` to install the `apigee-setup` utility:

      ```
      /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
      ```
   6. Install Postgres:

      ```
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile
      ```
   7. On the new standby node, run the following command:

      ```
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
      ```

      Validate that it says it is the standby.

### Decommissioning a Postgres node

After the update completes, decommission the new standby node:

1. Make sure Postgres is running:

   ```
   /opt/apigee/apigee-service/bin/apigee-all status
   ```

   If Postgres is not running, start it:

   ```
   /opt/apigee/apigee-service/bin/apigee-all start
   ```
2. Get the UUID of the new standby node by running the following cURL command on the new standby node:

   ```
   curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self
   ```

   You should see the UUID of the node at the end of the output, in the form:

   ```
   "type" : [ "postgres-server" ],
   "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
   ```
3. Stop the new standby node by running the following command on the new standby node:

   ```
   /opt/apigee/apigee-service/bin/apigee-all stop
   ```
4. On the Postgres master node, edit `/opt/apigee/customer/application/postgresql.properties` to remove the new standby node from `conf_pg_hba_replication.connection`:

   ```
   conf_pg_hba_replication.connection=host replication apigee existing_slave_ip/32 trust
   ```
5. Restart apigee-postgresql on the Postgres master:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
   ```
6. Verify that the new standby node was removed by viewing the `/opt/apigee/apigee-postgresql/conf/pg_hba.conf` file on the master. You should see only the following line in that file:

   ```
   host replication apigee existing_slave_ip/32 trust
   ```
7. Delete the UUID of the standby node from ZooKeeper by making the following Edge management API call on the Management Server node:

   ```
   curl -u sysAdminEmail:password -X DELETE http://ms_IP:8080/v1/servers/new_slave_uuid
   ```

## Update prerequisites

Take care of following prerequisites before upgrading Apigee Edge:

- **Backup all nodes**   
  Before you update, it is recommended to perform a complete backup of all nodes for safety reasons. Use the procedure for your current version of Edge to perform the backup.

  This allows you to have a backup plan, in case the update to a new version doesn't
  function properly. For more information on backup, see [Backup
  and Restore](https://docs.apigee.com/private-cloud/v4.18.05/backup-and-restore).
- **Ensure Edge is running**   
  Ensure that Edge is up and running during update process by using the command:

  ```
  /opt/apigee/apigee-service/bin/apigee-all status
  ```

## Handling a failed update

In the case of an update failure, you can try to correct the issue, and then run update.sh
again. You can run the update multiple times and it continues the update from where it last left
off.

If the failure requires that you roll back the update to your previous version, see
[Roll back 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/rollback-41805) for more.

> [!NOTE]
> **Note:** The Edge all-in-one and 2-node topologies are designed for a getting started and prototyping environments, not for production. Therefore, there is no rollback procedure for the all-in-one and 2-node topologies. In the situation where the update of these topologies fails, and retrying the update does not resolve the issue, the easiest option is to do a fresh install of 4.18.05.

## Logging update information

By default, the `update.sh` utility writes log information to:

```
/opt/apigee/var/log/apigee-setup/update.log
```

If the user running the `update.sh` utility does not have access to
that directory, it writes the log to the `/tmp` directory as a file named
`update_username.log`.

If the user does not have access to `/tmp`, the `update.sh` utility
fails.

## Zero-downtime update

A zero-downtime update, or rolling update, lets you update your Edge installation without
bringing down Edge.

Zero-downtime update is only possible with a 5-node configuration and larger.

The key to zero-downtime upgrading is to remove each Router, one at a time, from the load
balancer. You then update the Router and any other components on the same machine as the Router,
and then add the Router back to the load balancer.

1. Update the machines in the correct order for your installation as described in [Order of machine update](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#orderofmachineupdate).
2. When it is time to update the Routers, select any one Router and make it unreachable, as described in [Enabling/Disabling Server
   (Message Processor/Router) Reachability](https://docs.apigee.com/private-cloud/v4.18.05/enablingdisabling-server-message-processorrouter-reachability).
3. Update the selected Router and all other Edge components on the same machine as the Router. All Edge configurations show a Router and Message Processor on the same node.
4. Make the Router reachable again.
5. Repeat steps 2 through 4 for the remaining Routers.
6. Continue the update for any remaining machines in your installation.

Take care of the following before/after update:

- On combined Router and Message Processor node:
  - Before update -- perform the following:
    1. Make the Router unreachable.
    2. Make the Message Processor unreachable.
  - After update - perform the following:
    1. Make the Message Processor reachable.
    2. Make the Router reachable.
- On single Router node:
  - Before update, make the Router unreachable.
  - After update, make the Router reachable.
- On single Message Processor node:
  - Before update, make the Message Processor unreachable.
  - After update, make the Message Processor reachable.

## Using a silent configuration file

You must pass a silent configuration file to the update command. The silent configuration file
should be the same one you used to install Edge 4.17.0<var translate="no">x</var>.

## Update to
4.18.05 on a node with an external internet connection

Use the following procedure to update the Edge components on a node:

1. If you are currently using Postgres master-standby replication with local storage, install a new Postgres standby node as described in [Installing a new Postgres
   standby node](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-installinganewpostgresstandbynode).

   If you are using network storage, you do not have to install the new node. Instead, take a
   network snapshot of the data store used by Postgres. See [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.
2. If present, disable any CRON jobs configured to perform a repair operation on Cassandra until after the update completes.
3. Log in to your node as root to install the Edge RPMs.

   > [!NOTE]
   > **Note**: While RPM installation requires root access, you can perform Edge configuration without root access.

4. Install `yum-utils` and `yum-plugin-priorities`:

       sudo yum install yum-utils
       sudo yum install yum-plugin-priorities

5. Disable SELinux as described in [Install
   the Edge apigee-setup utility](https://docs.apigee.com/private-cloud/v4.18.05/install-edge-apigee-setup-utility).
6. **If you are installing on Oracle 7.x** , run the following command:

   ```
   sudo yum-config-manager --enable ol7_optional_latest
   ```
7. **If you are installing on AWS** , run the following `yum-configure-manager` commands:

       yum update rh-amazon-rhui-client.noarch
       sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

8. Download the Edge 4.18.05 `bootstrap_4.18.05.sh` file to `/tmp/bootstrap_4.18.05.sh`:

   ```
   curl https://software.apigee.com/bootstrap_4.18.05.sh -o /tmp/bootstrap_4.18.05.sh
   ```
9. Install the Edge 4.18.05 `apigee-service` utility and dependencies:

   ```
   sudo bash /tmp/bootstrap_4.18.05.sh apigeeuser=uName apigeepassword=pWord
   ```

   Where <var translate="no">uName:pWord</var> are the username and password you received from Apigee. If you
   omit <var translate="no">pWord</var>, you will be prompted to enter it.

   By default, the installer checks to see that you have Java 1.8 installed. If you do not, it
   installs it for you. Use the `JAVA_FIX` option to specify how to handle Java
   installation. `JAVA_FIX` takes the following values:
   - I = Install OpenJDK 1.8 (default)
   - C = Continue without installing Java
   - Q = Quit. For this option, you have to install Java yourself.
10. Use `apigee-service` to update the `apigee-setup` utility:

    ```
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
    ```
11. Update the `apigee-validate` utility on the Management Server:

    ```
    /opt/apigee/apigee-service/bin/apigee-service apigee-validate update
    ```
12. Update the `apigee-provision` utility:

    ```
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision update
    ```
13. Run the update utility on your nodes in the order described in [Order of machine update](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#orderofmachineupdate):

    ```
    /opt/apigee/apigee-setup/bin/update.sh -c component -f configFile
    ```

    The only requirement on the config file is that the configuration file must be accessible
    or readable by the "apigee" user.

    Use the `-c` option to specify the component to update. The list of possible
    components includes:
    - "cs" = Cassandra
    - "e" = ElasticSearch
    - "edge" =All Edge components except Edge UI. The "edge" component includes Management Server, Message Processor, Router, QPID Server, Edge Postgres Server.
    - "ldap" = OpenLDAP
    - "ps" = postgresql
    - "qpid" = qpidd
    - "sso" = Edge SSO
    - "ui" = Edge UI
    - "zk" = Zookeeper

    You can run `update.sh` against all components by setting <var translate="no">component</var>
    to "all", but only if you have an Edge all-in-one (aio) installation profile. For example:

    ```
    /opt/apigee/apigee-setup/bin/update.sh -c all -f ./sa_silent_config
    ```
14. Restart the Edge UI component on all machines running it, if you haven't done so already:

    ```
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
    ```
15. Test the update by running the `apigee-validate` utility on the Management Server, as described in [Test the install](https://docs.apigee.com/private-cloud/v4.18.05/test-install).
16. If you installed a new Postgres standby node, decommission the node as described in [Decommissioning a
    Postgres node](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-decommissioningapostgresnode).

    If you are using network storage, you do not have to install the new node. See
    [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.

To later roll back the update, use the procedure described in [Roll back 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/rollback-41805).

## Update to 4.18.05 from a local repo

If your Edge nodes are behind a firewall, or in some other way are prohibited from accessing
the Apigee repository over the Internet, then you can perform the update from a local repository,
or mirror, of the Apigee repo.

After you create a local Edge repository, you have two options for updating Edge from the
local repo:

- Create a .tar file of the repo, copy the .tar file to a node, and then update Edge from the .tar file.
- Install a webserver on the node with the local repo so that other nodes can access it. Apigee provides the Nginx webserver for you to use, or you can use your own webserver.

To update from a local 4.18.05 repo:

1. If you are currently using Postgres master-standby replication, install a new Postgres standby node as described in [Installing a new Postgres
   standby node](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-installinganewpostgresstandbynode).

   If you are using network storage, you do not have to install the new node. Instead, take a
   network snapshot of the data store used by Postgres. See [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.
2. Create a local 4.18.05 repo as described in "Create a local Apigee repository" at [Install the Edge apigee-setup utility](https://docs.apigee.com/private-cloud/v4.18.05/install-edge-apigee-setup-utility).  

   > [!NOTE]
   > **Note** : If you already have an existing 4.17.0<var translate="no">x</var> repo, you can add the 4.18.05 repo to it as described in "Update a local Apigee repository" at [Install the Edge apigee-setup utility](https://docs.apigee.com/private-cloud/v4.18.05/install-edge-apigee-setup-utility).

3. **To install apigee-service from a .tar file** :
   1. On the node with the local repo, use the following command to package the local repo into a single .tar file named `/opt/apigee/data/apigee-mirror/apigee-4.18.05.tar.gz`:

      ```
      /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      ```
   2. Copy the .tar file to the node where you want to update Edge. For example, copy it to the `/tmp` directory on the new node.
   3. On the new node, untar the file to the /tmp directory:

      ```
      tar -xzf apigee-4.18.05tar.gz
      ```

      This command creates a new directory, named repos, in the directory containing the .tar
      file. For example /tmp/repos.
   4. Install the Edge apigee-service utility and dependencies from /tmp/repos:   

      ```
      sudo bash /tmp/repos/bootstrap_4.18.05.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos
      ```

      Notice that you include the path to the repos directory in this command.
4. **To install apigee-service using the Nginx webserver:**
   1. Configure the Nginx web server as described in "Install from the repo using the Nginx webserver" at [Install the Edge
      `apigee-setup` utility](https://docs.apigee.com/private-cloud/v4.18.05/install-edge-apigee-setup-utility).
   2. On the remote node, download the Edge `bootstrap_4.18.05.sh` file to `/tmp/bootstrap_4.18.05.sh`:

      ```
      /usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.18.05.sh -o /tmp/bootstrap_4.18.05.sh
      ```

      Where <var translate="no">uName:pWord</var> are the username and password you set previously for
      the repo, and <var translate="no">remoteRepo</var> is the IP address or DNS name of the repo node.
   3. On the remote node, install the Edge `apigee-service` utility and dependencies:

      ```
      sudo bash /tmp/bootstrap_4.18.05.sh apigeerepohost=remoteRepo:3939 apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://
      ```

      Where <var translate="no">uName:pWord</var> are the repo username and password.
5. Use `apigee-service` to update the `apigee-setup` utility:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-setup update 
   ```
6. Update the `apigee-validate` utility on the Management Server:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-validate update
   ```
7. Update the `apigee-provision` utility:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-provision update
   ```
8. Run the `update` utility on your nodes in the order described in [Order of machine update](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#orderofmachineupdate):

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c component -f configFile
   ```

   The only requirement on the config file is that the configuration file must be accessible or
   readable by the "apigee" user.

   Use the `-c` option to specify the component to update. The list of possible
   components includes:
   - "cs" = Cassandra
   - "e" = ElasticSearch
   - "edge" =All Edge components except Edge UI. The "edge" component includes Management Server, Message Processor, Router, QPID Server, Edge Postgres Server.
   - "ldap" = OpenLDAP
   - "ps" = postgresql
   - "qpid" = qpidd
   - "sso" = Edge SSO
   - "ui" = Edge UI
   - "zk" = Zookeeper

   You can run `update.sh` against all components by setting <var translate="no">component</var>
   to "all", but only if you have an Edge all-in-one (aio) installation profile. For example:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c all -f ./sa_silent_config
   ```
9. Restart the Edge UI component on all machines running it, if you haven't done so already:

   ```
   /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
   ```
10. Test the update by running the `apigee-validate` utility on the Management Server, as described in [Test the install](https://docs.apigee.com/private-cloud/v4.18.05/test-install).
11. If you installed a new Postgres standby node, decommission the node as described in [Decommissioning
    a Postgres node](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-decommissioningapostgresnode).

    If you are using network storage, you do not have to install the new node. See [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.

To later roll back the update, use the procedure described in [Roll back 4.18.05](https://docs.apigee.com/private-cloud/v4.18.05/rollback-41805).

## Order of machine update

The order that you update the machines in an Edge installation is important. The most
important considerations to an update are:

- You must update **all** Cassandra and ZooKeeper nodes before you update any other nodes.
- For any machine with multiple Edge components (Management Server, Message Processor, Router, QPID Server but not Postgres Server), use the "-c edge" option to update them all at the same time.
- If a step specifies that it should be performed on multiple machines, perform it in the specified machine order.
- There is no separate step to update Monetization. It is updated when you specify the "-c edge" option.

> [!NOTE]
> **Note:** After you update the Edge UI component, you must restart the Edge UI service, as described in the update installation instructions.

### 1-node standalone installation

> [!NOTE]
> **Note:** For a 1-node installation, you do not have to create a new Postgres standby node even if it uses local storage. The Edge all-in-one topology is designed for a getting started and prototyping environments, not for production. Therefore, there is no rollback procedure. If the update fails, try the update procedure again. If the update continues to fail after multiple attempts, then the easiest option is to do a fresh install of 4.18.05.

1. Update Cassandra and ZooKeeper:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
   ```
2. Update Qpid:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
   ```
3. Update LDAP:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
   ```
4. Stop Postgres Server, Qpid server, and PostgreSQL:

       /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
       /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
       /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

5. Update postgresql:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
   ```
6. Update the Postgres database:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
   ```
7. Update the remaining Edge components:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
8. Update Edge UI:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile
   ```
9. *(If you installed Edge SSO)* Update Edge SSO:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c sso -f sso_config_file
   ```

   Where <var translate="no">sso_config_file</var> is the configuration file you created when you
   [installed SSO](https://docs.apigee.com/private-cloud/v4.18.05/install-and-configure-edge-sso).
10. Restart the Edge UI component:

    ```
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
    ```

### 2-node standalone installation

> [!NOTE]
> **Note:** For a 2-node installation, you do not have to create a new Postgres standby node even if it uses local storage. The Edge 2-node topology is designed for a getting started and prototyping environments, not for production. Therefore, there is no rollback procedure. In the situation where the update fails, try the update procedure again. If the update continues to fail after multiple attempts, then the easiest option is to do a fresh install of 4.18.05.

See [Installation topologies](https://docs.apigee.com/private-cloud/v4.18.05/installation-topologies) for the list of Edge
topologies and node numbers.

1. Update Cassandra and ZooKeeper on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
   ```
2. Update Qpid on machine 2:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
   ```
3. Update LDAP on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
   ```
4. Update Edge components on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
5. Update UI on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile
   ```
6. *(If you installed Edge SSO)* Update Edge SSO on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c sso -f sso_config_file
   ```

   Where <var translate="no">sso_config_file</var> is the configuration file you created when you
   [installed SSO](https://docs.apigee.com/private-cloud/v4.18.05/install-and-configure-edge-sso).
7. Update postgresql on machine 2:
   1. Stop Postgres Server, Qpid server, and postgresql:  

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
          /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
          /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

   2. Update postgresql:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
   3. Update the Postgres database:

      ```
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
      ```
   4. Update Edge components on machine 2:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
      ```
8. Restart the Edge UI component on machine 1:

   ```
   /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
   ```

### 5-node installation

See [Installation topologies](https://docs.apigee.com/private-cloud/v4.18.05/installation-topologies) for the list of Edge
topologies and node numbers.

1. Ensure that you have installed a new Postgres standby node as described in [*Installing
   a new Postgres standby node*](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-installinganewpostgresstandbynode).

   If you are using network storage, you do not have to install the new node. Instead, take a
   network snapshot of the data store used by Postgres. See [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.
2. Update Cassandra and ZooKeeper on machine 1, 2, and 3:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
   ```
3. Update Qpid on machine 4 and 5:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
   ```
4. Update LDAP on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
   ```
5. Update Edge components on machine 1, 2, 3:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
6. Update UI on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile
   ```
7. *(If you installed Edge SSO)* Update Edge SSO on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c sso -f sso_config_file
   ```

   Where <var translate="no">sso_config_file</var> is the configuration file you created when you
   [installed SSO](https://docs.apigee.com/private-cloud/v4.18.05/install-and-configure-edge-sso).
8. Update machines 4 and 5:
   1. Stop Postgres server and Qpid server on machine 4:  

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
          /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop

   2. Stop Postgres server, Qpid server, and postgresql on machine 5:

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
          /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
          /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

   3. **If installed** , stop Postgres server and postgresql on the new standby node that you added for rollback:

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
          /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

   4. Update postgresql on machines 4:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
   5. Update the Postgres database on machine 4 (Postgres master only):

      ```
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
      ```
   6. Update postgresql on machines 5:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
   7. Start Postgres server and Qpid server on machines 4 and 5:

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
          /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start

   8. Configure Postgres as a standby node by running the following commands on machine 5:

          cd /opt/apigee/data/apigee-postgresql/pgdata
          rm -rf *
          /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile

   9. Verify the replication status by issuing the following scripts on both servers. The system should display identical results on both servers to ensure a successful replication:
      - On the machine 4, the master node, run:

        ```
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
        ```

        Validate that it says it is the master.
      - On machine 5, the standby node:

        ```
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
        ```

        Validate that it says it is the standby.
9. Update Edge components on machine 4, 5:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
10. Ensure that you decommission the new standby node as described in [Decommissioning
    a Postgres node](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-decommissioningapostgresnode).

    If you are using network storage, you do not have to install the new node. See [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.
11. Restart the Edge UI component on machine 1:

    ```
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
    ```

### 9-node clustered
installation

See [Installation topologies](https://docs.apigee.com/private-cloud/v4.18.05/installation-topologies) for the list of Edge
topologies and node numbers.

1. Ensure that you have installed a new Postgres standby node as described in [*Installing
   a new Postgres standby node*](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-installinganewpostgresstandbynode).

   If you are using network storage, you do not have to install the new node. Instead, take a
   network snapshot of the data store used by Postgres. See [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.
2. Update Cassandra and ZooKeeper on machine 1, 2, and 3:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
   ```
3. Update Qpid on machine 6 and 7:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
   ```
4. Update LDAP on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
   ```
5. Update Edge components on machine 6, 7, 1, 4, and 5 in that order:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
6. Update UI on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile
   ```
7. *(If you installed Edge SSO)* Update Edge SSO on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c sso -f sso_config_file
   ```

   Where <var translate="no">sso_config_file</var> is the configuration file you created when you
   [installed SSO](https://docs.apigee.com/private-cloud/v4.18.05/install-and-configure-edge-sso).
8. Update machines 8 and 9:
   1. Stop Postgres server on machine 8:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      ```
   2. Stop Postgres server and postgresql on machine 9:

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
          /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

   3. Stop Qpid server on machines 6 and 7:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
      ```
   4. **If installed** , stop Postgres server and postgresql on the new standby node that you added for rollback:

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
          /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

   5. Update postgresql on machines 8:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
   6. Update the Postgres database on machine 8 (Postgres master only):

      ```
      /-->
      opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
      ```
   7. Update postgresql on machines 9:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
   8. Start Postgres server server on machines 8 and 9:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
      ```
   9. Start Qpid server server on machines 6 and 7:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
      ```
   10. Configure Postgres as a standby node by running the following commands on machine 9:

           cd /opt/apigee/data/apigee-postgresql/pgdata
           rm -rf *
           /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile

   11. Verify the replication status by issuing the following scripts on both servers. The system should display identical results on both servers to ensure a successful replication:
       - On the machine 8, the master node, run:

         ```
         /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
         ```

         Validate that it says it is the master.
       - On machine 9, the standby node:

         ```
         /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
         ```

         Validate that it says it is the standby.
9. Update Edge components on machine 8 and 9:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
10. Ensure that you decommission the new standby node as described in [*Decommissioning
    a Postgres node*](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-decommissioningapostgresnode).

    If you are using network storage, you do not have to install the new node. See [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.
11. Restart the Edge UI component on machine 1:

    ```
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
    ```

### 13-node clustered installation

See [Installation topologies](https://docs.apigee.com/private-cloud/v4.18.05/installation-topologies) for the list of Edge
topologies and node numbers.

1. Ensure that you have installed a new Postgres standby node as described in [*Installing
   a new Postgres standby node*](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-installinganewpostgresstandbynode).

   If you are using network storage, you do not have to install the new node. Instead, take a
   network snapshot of the data store used by Postgres. See [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.
2. Update Cassandra and ZooKeeper on machine 1, 2, and 3:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
   ```
3. Update Qpid on machine 12 and 13:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
   ```
4. Update LDAP on machine 4 and 5:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
   ```
5. Update Edge components on machine 12, 13, 6, 7, 10, and 11 in that order:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
6. Update UI on machine 6 and 7:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile
   ```
7. *(If you installed Edge SSO)* Update Edge SSO on machine 6 and 7:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c sso -f sso_config_file
   ```

   Where <var translate="no">sso_config_file</var> is the configuration file you created when you
   [installed SSO](https://docs.apigee.com/private-cloud/v4.18.05/install-and-configure-edge-sso).
8. Update machines 8 and 9:
   1. Stop Postgres server on machine 8:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      ```
   2. Stop Postgres server and postgresql on machine 9:

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
          /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

   3. Stop Qpid server on machines 12 and 13:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
      ```
   4. **If installed** , stop Postgres server and postgresql on the new standby node that you added for rollback:

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
          /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

   5. Update postgresql on machines 8:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
   6. Update the Postgres database on machine 8 (Postgres master only):

      ```
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
      ```
   7. Update postgresql on machines 9:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
   8. Start Postgres server on machines 8 and 9:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
      ```
   9. Start Qpid server server on machines 12 and 13:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
      ```
   10. Configure Postgres as a standby node by running the following commands on machine 9:

           cd /opt/apigee/data/apigee-postgresql/pgdata
           rm -rf *
           /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile

   11. Verify the replication status by issuing the following scripts on both servers. The system should display identical results on both servers to ensure a successful replication:
       - On the machine 8, the master node, run:

         ```
         /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
         ```

         Validate that it says it is the master.
       - On machine 9, the standby node:

         ```
         /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
         ```

         Validate that it says it is the standby.
9. Update Edge components on machine 8 and 9:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
10. Ensure that you decommission the new standby node as described in [*Decommissioning
    a Postgres node*](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-decommissioningapostgresnode).

    If you are using network storage, you do not have to install the new node. See [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.
11. Restart the Edge UI component on machines 6 and 7:

    ```
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
    ```

### 12-node clustered installation

See [Installation topologies](https://docs.apigee.com/private-cloud/v4.18.05/installation-topologies) for the list of Edge
topologies and node numbers.

1. Ensure that you have installed a new Postgres standby node as described in [Installing
   a new Postgres standby node](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-installinganewpostgresstandbynode).

   If you are using network storage, you do not have to install the new node. Instead, take a
   network snapshot of the data store used by Postgres. See
   [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.
2. Update Cassandra and ZooKeeper:
   1. On machines 1, 2 and 3 in Data Center 1:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
      ```
   2. On machines 7, 8, and 9 in Data Center 2

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
      ```
3. Update qpidd:
   1. Machines 4, 5 in Data Center 1
      1. Update `qpidd` on machine 4:

         ```
         /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
         ```
      2. Repeat step 1 on machine 5.
   2. Machines 10, 11 in Data Center 2
      1. Update `qpidd `on machine 10:

         ```
         /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
         ```
      2. Repeat step 1 on machine 11.
4. Update LDAP:
   1. Machines 1 in Data Center 1

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
      ```
   2. Machines 7 in Data Center 2

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
      ```
5. Update Edge components:
   1. Machines 4, 5, 1, 2, 3 in Data Center 1

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
      ```
   2. Machines 10, 11, 7, 8, 9 in Data Center 2

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
      ```
6. Update UI:
   1. Machine 1 in Data Center 1:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile
      ```
   2. Machine 7 in Data Center 2:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile
      ```
7. *(If you installed Edge SSO)* Update Edge SSO:
   1. Machine 1 in Data Center 1:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c sso -f sso_config_file
      ```
   2. Machine 7 in Data Center 2:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c sso -f sso_config_file
      ```
   3. Where <var translate="no">sso_config_file</var> is the configuration file you created when you [installed SSO](https://docs.apigee.com/private-cloud/v4.18.05/install-and-configure-edge-sso).
8. **Update machine 6 in Data Center 1 and 12 in Data Center 2:**
   1. Stop Postgres server on machine 6:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      ```
   2. Stop Postgres server and postgresql on machine 12:

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
          /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

   3. Stop Qpid server on machines 4, 5, 10, and 11:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
      ```
   4. **If installed** , stop Postgres server and postgresql on the new standby node that you added for rollback:

          /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
          /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

   5. Update postgresql on machines 6:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
   6. Update the Postgres database on machine 6 (Postgres master only):

      ```
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
      ```
   7. Update postgresql on machines 12:

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
   8. Start Postgres server server on machines 6 and 12:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
      ```
   9. Start Qpid server server on machines 4, 5, 10, and 11:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
      ```
   10. Configure Postgres as a standby node by running the following commands on machine 12:

           cd /opt/apigee/data/apigee-postgresql/pgdata
           rm -rf *
           /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile

   11. Verify the replication status by issuing the following scripts on both servers. The system should display identical results on both servers to ensure a successful replication: On the machine 6, the master node, run:

       ```
       /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
       ```

       Validate that it says it is the master.


       On machine 12, the standby node:


       ```
       /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
       ```

       Validate that it says it is the standby.
9. Update Edge components on machine 6 and 12:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
10. Ensure that you decommission the new standby node as described in [Decommissioning a Postgres
    node](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96-decommissioningapostgresnode).

    If you are using network storage, you do not have to install the new node. See
    [Required upgrade to Postgres 9.6](https://docs.apigee.com/private-cloud/v4.18.05/update-apigee-edge-4170541709-41805#requiredupgradetopostgres96) for more.
11. Restart the Edge UI component on machines 1 and 7:

    ```
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
    ```

### For a non-standard installation

If you have a non-standard installation, then update Edge components in the following order:

1. ZooKeeper
2. Cassandra
3. qpidd, ps
4. LDAP
5. Edge, meaning the "-c edge" profile on all nodes in the order: nodes with Qpid server, Edge Postgres Server, Management Server, Message Processor, and Router.

   > [!NOTE]
   > **Note:** If the node has both Qpid server and Postgres server installed, run the "-c edge" profile step.

6. Edge UI
7. Edge SSO

After you finish updating, be sure to restart the Edge UI component on all machines running
it.