> [!CAUTION]
> **Caution:** This documentation covers Edge for Private Cloud 4.19.06, 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.

This section describes how to perform the following upgrade:

- From 4.19.01 to 4.19.06

> [!WARNING]
> **Caution:** If you need to add a data center as well as update Apigee Edge, you must perform these actions in separate procedures. Complete one procedure before starting the other.

#### All Upgrade Paths

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

|   ||
|---|---|
| From 4.19.01 | Directly [upgrade from 4.19.01 → 4.19.06](https://docs.apigee.com/private-cloud/v4.19.06/update-apigee-edge-41901-41906) |
| From 4.18.05 | Directly [upgrade from 4.18.05 → 4.19.06](https://docs.apigee.com/private-cloud/v4.19.06/update-apigee-edge-4180x-41906) |
| From 4.18.01 | Directly [upgrade from 4.18.01 → 4.19.06](https://docs.apigee.com/private-cloud/v4.19.06/update-apigee-edge-4180x-41906) |

## 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.

## 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.

## 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.19.06/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
  ```

## New Edge UI

This section lists considerations regarding the Edge UI. For more information, see
[The new Edge UI for Private Cloud](https://docs.apigee.com/private-cloud/v4.19.06/new-edge-ui).

### Install the Edge UI

After you complete the initial installation, Apigee recommends that you install the Edge UI,
which is an enhanced user interface for developers and administrators of Apigee Edge for Private Cloud.

Note that the Edge UI requires that you disable Basic authentication and use an
such as SAML or LDAP.

For more information, see [Install the new Edge UI](https://docs.apigee.com/private-cloud/v4.19.06/install-new-edge-ui).

### Update the Edge UI

To update the Edge UI component, consider the version of Edge for the Private Cloud that you
are upgrading from:

- **From 4.18.0x:** If you installed the Beta version of Edge UI (formerly known as *New Edge experience* or the *New UE* ) in 4.18.0x, you must uninstall it and do a fresh install of the 4.19.06 version of the Edge UI as described in [Install the new Edge UI](https://docs.apigee.com/private-cloud/v4.19.06/install-new-edge-ui).
- **From 4.19.01** (with the new Edge UI already installed): Use the [upgrade instructions in this section](https://docs.apigee.com/private-cloud/v4.19.06/update-apigee-edge-41901-41906#orderofmachineupdate) for the `edge-management-ui` component.
- **From 4.19.01** (with the classic UI): Upgrade your Edge for the Private Cloud installation as described in this section and then install the Edge UI as described in [Install the new Edge UI](https://docs.apigee.com/private-cloud/v4.19.06/install-new-edge-ui).

## Update with Apigee mTLS

Apigee Edge for Private Cloud version 4.19.06 currently does not have upgraded libraries for
the Apigee mTLS. If you are currently running v4.19.01 with Apigee mTLS and want to upgrade to
v4.19.06, contact [Apigee Edge Support](https://docs.apigee.com/api-platform/troubleshoot/support).

## Handling a failed update

In the case of an update failure, you can try to correct the issue, and then execute
`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.19.06](https://docs.apigee.com/private-cloud/v4.19.06/rollback-41906) for more.

> [!NOTE]
> **NOTE:** The Edge [all-in-one (AIO)](https://docs.apigee.com/private-cloud/v4.19.06/installation-topologies#allinoneinstallation) and [standalone (2-node)](https://docs.apigee.com/private-cloud/v4.19.06/installation-topologies#standaloneinstallation2host) topologies are designed for a getting started and prototyping environments, not for production. Therefore, there is no rollback procedure for the [all-in-one (AIO)](https://docs.apigee.com/private-cloud/v4.19.06/installation-topologies#allinoneinstallation) and [standalone (2-node)](https://docs.apigee.com/private-cloud/v4.19.06/installation-topologies#standaloneinstallation2host) 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.19.06.

## 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 [Order of machine update](https://docs.apigee.com/private-cloud/v4.19.06/update-apigee-edge-41901-41906#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.19.06/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 nodes:
  - Before update, [make the Router unreachable](https://docs.apigee.com/private-cloud/v4.19.06/enablingdisabling-server-message-processorrouter-reachability#disablingenablingreachabilityonarouter).
  - After update, [make the Router reachable](https://docs.apigee.com/private-cloud/v4.19.06/enablingdisabling-server-message-processorrouter-reachability#disablingenablingreachabilityonarouter).
- On single Message Processor nodes:
  - Before update, [make the Message Processor unreachable](https://docs.apigee.com/private-cloud/v4.19.06/enablingdisabling-server-message-processorrouter-reachability#disablingenablingreachabilityonamessageprocessor).
  - After update, [make the Message Processor reachable](https://docs.apigee.com/private-cloud/v4.19.06/enablingdisabling-server-message-processorrouter-reachability#disablingenablingreachabilityonamessageprocessor).

## Use a silent configuration file

You must pass a silent configuration file to the update command. The silent configuration file
should be the same one that you used to install Edge 4.19.01.

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

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

1. If present, disable any `cron` jobs configured to perform a repair operation on Cassandra until after the update completes.
2. 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.

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

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

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

   ```
   sudo yum-config-manager --enable ol7_optional_latest
   ```
6. **If you are installing on AWS** , execute 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

7. Download the Edge 4.19.06 `bootstrap_4.19.06.sh` file to `/tmp/bootstrap_4.19.06.sh`:

   ```
   curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
   ```
8. Install the Edge 4.19.06 `apigee-service` utility and dependencies by executing the following command:

   ```
   sudo bash /tmp/bootstrap_4.19.06.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 that you have Java 1.8 installed. If you do not, the
   installer 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 must install Java yourself.
9. Use `apigee-service` to update the `apigee-setup` utility, as the following example shows:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
   ```
10. Update the `apigee-validate` utility on the Management Server, as the following example shows:

    ```
    /opt/apigee/apigee-service/bin/apigee-service apigee-validate update
    ```
11. Update the `apigee-provision` utility on the Management Server, as the following example shows:

    ```
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision update
    ```
12. Run the `update` utility on your nodes by executing the following command:

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

    Do this in the order described in [Order of machine
    update](https://docs.apigee.com/private-cloud/v4.19.06/update-apigee-edge-41901-41906#orderofmachineupdate).

    Where:
    - <var translate="no">component</var> is the Edge component to update. Possible values include:
      - `cs`: Cassandra
      - `edge`: All Edge components except Edge UI: Management Server, Message Processor, Router, QPID Server, Postgres Server
      - `ldap`: OpenLDAP
      - `ps`: postgresql
      - `qpid`: qpidd
      - `sso`: Apigee SSO (if you installed SSO)
      - `ue`: New Edge UI
      - `ui`: Classic Edge UI
      - `zk`: Zookeeper
    - <var translate="no">configFile</var> is the same configuration file that you used to [define your Edge
      components](https://docs.apigee.com/private-cloud/v4.19.06/install-edge-components-node#installedgecomponents) during the 4.19.01 installation.

    > [!NOTE]
    > **NOTE:** The configuration file must be readable by the "apigee" user. To change the owner, use the following command:
    >
    > ```
    > chown apigee:apigee configFile
    > ```

    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
    ```
13. Restart the Edge UI component on all nodes running it, if you haven't done so already:

    ```
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
    ```
14. 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.19.06/test-install).

If you later decide to roll back the update, use the procedure described in
[Roll back 4.19.06](https://docs.apigee.com/private-cloud/v4.19.06/rollback-41901).

## Update to 4.19.06 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.19.06 repo:

1. Create a local 4.19.06 repo as described in "Create a local Apigee repository" at [Install the Edge apigee-setup utility](https://docs.apigee.com/private-cloud/v4.19.06/install-edge-apigee-setup-utility).

   > [!NOTE]
   > **NOTE:** If you already have an existing repo, you can add the 4.19.06 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.19.06/install-edge-apigee-setup-utility).

2. **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.19.06.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.19.06.tar.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.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos
      ```

      Notice that you include the path to the repos directory in this command.
3. **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.19.06/install-edge-apigee-setup-utility).
   2. On the remote node, download the Edge `bootstrap_4.19.06.sh` file to `/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
      ```

      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-setup` utility and dependencies:

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

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

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-setup update 
   ```
5. Update the `apigee-validate` utility on the Management Server, as the following example shows:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-validate update
   ```
6. Update the `apigee-provision` utility on the Management Server, as the following example shows:

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

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

   Where:
   - <var translate="no">component</var> is the Edge component to update. You typically update the following components:
     - `cs`: Cassandra
     - `edge`: All Edge components except Edge UI: Management Server, Message Processor, Router, QPID Server, Postgres Server
     - `ldap`: OpenLDAP
     - `ps`: postgresql
     - `qpid`: qpidd
     - `sso`: Apigee SSO (if you installed SSO)
     - `ue` New Edge UI
     - `ui`: Classic Edge UI
     - `zk`: Zookeeper
   - <var translate="no">configFile</var> is the same configuration file that you used to [define your Edge components](https://docs.apigee.com/private-cloud/v4.19.06/install-edge-components-node#installedgecomponents) during the 4.19.01 installation.

     > [!NOTE]
     > **NOTE:** The configuration file must be readable by the "apigee" user. To change the owner, use the following command:
     >
     > ```
     > chown apigee:apigee configFile
     > ```

   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 /tmp/sa_silent_config
   ```
8. Restart the UI components on all nodes running it, if you haven't done so already:

   ```
   /opt/apigee/apigee-service/bin/apigee-service [edge-management-ui|edge-ui] restart
   ```
9. 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.19.06/test-install).

If you later decide to roll back the update, use the procedure described in
[Roll back 4.19.06](https://docs.apigee.com/private-cloud/v4.19.06/rollback-41901).

## Order of machine update

The order that you update the machines in an Edge installation is important:

- 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 upgrade

**To upgrade a 1-node standalone configuration to 4.19.06:**

1. Update all components:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c all -f configFile
   ```
2. *(If you installed `apigee-adminapi`)* Updated the `apigee-adminapi` utility:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update
   ```

### 2-node standalone upgrade

Update the following components for a 2-node standalone installation:

See [Installation topologies](https://docs.apigee.com/private-cloud/v4.19.06/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 and Postgres on machine 2:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c qpid,ps -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 2 and 1:

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

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile
   ```
6. *(If you installed `apigee-adminapi`)* Updated the `apigee-adminapi` utility on machine 1:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update
   ```
7. *(If you installed Apigee SSO)* Update Apigee 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.19.06/install-and-configure-edge-sso).
8. Restart the Edge UI component on machine 1:

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

### 5-node upgrade

Update the following components for a 5-node installation:

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

1. Update Cassandra and ZooKeeper on machine 1, 2, and 3:

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

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c qpid, ps -f configFile
   ```
3. Update Qpid and Postgres on machine 5:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c qpid, ps -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 4, 5, 1, 2, 3:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
6. Update the Edge UI:
   - **Classic UI:** If you are using the classic UI, then update the `ui` component on machine 1, as the following example shows:

     ```
     /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile
     ```
   - **New Edge UI:** If you installed the new Edge UI, then update the `ue` component on the appropriate machine (may not be machine 1):

     ```
     /opt/apigee/apigee-setup/bin/update.sh -c ue -f /opt/silent.conf
     ```
7. *(If you installed `apigee-adminapi`)* Updated the `apigee-adminapi` utility on machine 1:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update
   ```
8. *(If you installed Apigee SSO)* Update Apigee 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.19.06/install-and-configure-edge-sso).
9. Restart the UI component:
   - **Classic UI:** If you are using the classic UI, then restart the `edge-ui` component on machine 1, as the following example shows:

     ```
     /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
     ```
   - **New Edge UI:** If you installed the new Edge UI, then restart the `edge-management-ui` component on the appropriate machine (may not be machine 1):

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

### 9-node clustered upgrade

Update the following components for a 9-node clustered installation:

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

1. Update Cassandra and ZooKeeper on machine 1, 2, and 3:

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

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

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
   ```
4. Update Postgres on machine 9:

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

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

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
7. Update either the new UI (`ue`) or classic UI (`ui`) on machine 1:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c [ui|ue] -f configFile
   ```
8. *(If you installed `apigee-adminapi`)* Update the `apigee-adminapi` utility on machine 1:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update
   ```
9. *(If you installed Apigee SSO)* Update Apigee 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.19.06/install-and-configure-edge-sso).
10. Restart the UI component:
    - **Classic UI:** If you are using the classic UI, then restart the `edge-ui` component on machine 1, as the following example shows:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
      ```
    - **New Edge UI:** If you installed the new Edge UI, then restart the `edge-management-ui` component on the appropriate machine (may not be machine 1):

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

### 13-node clustered upgrade

Update the following components for a 13-node clustered installation:

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

1. Update Cassandra and ZooKeeper on machines 1, 2, and 3:

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

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

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
   ```
4. Update Postgres on machine 9:

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

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

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
   ```
7. Update either the new UI (`ue`) or classic UI (`ui`) on machines 6 and 7:

   ```
   /opt/apigee/apigee-setup/bin/update.sh -c [ui|ue] -f configFile
   ```
8. *(If you installed `apigee-adminapi`)* Updated the `apigee-adminapi` utility on machines 6 and 7:

   ```
   /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update
   ```
9. *(If you installed Apigee SSO)* Update Apigee SSO on machines 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.19.06/install-and-configure-edge-sso).
10. Restart the UI component:
    - **Classic UI:** If you are using the classic UI, then restart the `edge-ui` component on machines 6 and 7, as the following example shows:

      ```
      /opt/apigee/apigee-service/bin/apigee-service edge-ui restart
      ```
    - **New Edge UI:** If you installed the new Edge UI, then restart the `edge-management-ui` component on machines 6 and 7:

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

### 12-node clustered upgrade

Update the following components for a 12-node clustered installation:

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

1. 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
      ```
2. 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. Update `qpidd` on machine 5:

         ```
         /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
         ```
   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. Update `qpidd `on machine 11:

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

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
   2. Machine 12 in Data Center 2

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
      ```
4. Update LDAP:
   1. Machine 1 in Data Center 1

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

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

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

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
      ```
6. Update either the new UI (`ue`) or classic UI (`ui`):
   1. Machine 1 in Data Center 1:

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

      ```
      /opt/apigee/apigee-setup/bin/update.sh -c [ui|ue] -f configFile
      ```
7. *(If you installed `apigee-adminapi`)* Updated the `apigee-adminapi` utility:
   1. Machine 1 in Data Center 1:

      ```
      /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update
      ```
   2. Machine 7 in Data Center 2:

      ```
      /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update
      ```
8. *(If you installed Apigee SSO)* Update Apigee 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.19.06/install-and-configure-edge-sso).
9. Restart the new Edge UI (`edge-management-ui`) or classic Edge UI (`edge-ui`) component on machines 1 and 7:

   ```
   /opt/apigee/apigee-service/bin/apigee-service [edge-ui|edge-management-ui] restart
   ```

### For a non-standard configuration

If you have a non-standard configuration, 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 a node has both Qpid server and Edge Postgres Server installed, run the "-c edge" profile step.

6. Edge UI (either classic or new)
7. `apigee-adminapi`
8. Apigee SSO

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

*[IDP]: Identity Provider