Shown below is an example of a complete silent configuration file for a 9 node Edge
installation. Edit this file as necessary for your configuration. Use the `-f` option
to `setup.sh` to include this file. For examples of configuration files that are
specific to each topology, see
[Install Edge components](https://docs.apigee.com/private-cloud/v4.54.00/install-edge-components-node#installedgecomponents).

> [!NOTE]
> **NOTE:** The definition of the IP# variables for the Router, Message Processor, Qpid, and Postgres nodes are for illustrating the node configuration; they are not actually used.

```
    # IP address or DNS name of nodes.
    IP1=192.168.1.1  # Management Server, SymasLDAP, UI, ZooKeeper, Cassandra (IP address only; do not use a DNS name)
    IP2=192.168.1.2  # ZooKeeper, Cassandra (IP address only; do not use a DNS name)
    IP3=192.168.1.3  # ZooKeeper, Cassandra (IP address only; do not use a DNS name)
    IP4=192.168.1.4  # Router, Message Processor
    IP5=192.168.1.5  # Router, Message Processor
    IP6=192.168.1.6  # Qpid
    IP7=192.168.1.7  # Qpid
    IP8=192.168.1.8  # Postgres
    IP9=192.168.1.9  # Postgres
    
    # Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
    HOSTIP=$(hostname -i)
    
    # Specify "y" to check that the system meets the CPU and memory requirements
    # for the component being installed. See Installation Requirements for requirements
    # for each component. The default value is "n" to disable check.
    ENABLE_SYSTEM_CHECK=n
    
    # When "hostname -i" returns multiple IP addresses,
    # set to "y", to have the installer prompt you to select the IP address to use.
    ENABLE_DYNAMIC_HOSTIP=n
    
    # Set Edge sys admin credentials.
    ADMIN_EMAIL=your@email.com
    APIGEE_ADMINPW=yourPassword    # If omitted, you are prompted for it.
    
    # Location of Edge license file.
    LICENSE_FILE=/tmp/license.txt
    
    # Management Server information.
    MSIP=$IP1    # IP or DNS name of Management Server node.
    # Specify the port the Management Server listens on for API calls.
    # APIGEE_PORT_HTTP_MS=8080    # Default is 8080.
    
    # SymasLDAP information.
    # Set to y if you are connecting to a remote LDAP server.
    # If n, Edge installs SymasLDAP when it installs the Management Server.
    USE_LDAP_REMOTE_HOST=n
    
    # If connecting to remote SymasLDAP server, specify the IP/DNS name and port.
    # LDAP_HOST=$IP1    # IP or DNS name of SymasLDAP node.
    # LDAP_PORT=10389   # Default is 10389.
    APIGEE_LDAPPW=yourLdapPassword
    
    # Specify SymasLDAP without replication, 1, or with replication, 2.
    LDAP_TYPE=1
    
    # Set only if using replication.
    # LDAP_SID=1    # Unique ID for this LDAP server.
    # LDAP_PEER=    # IP or DNS name of LDAP peer.
    
    # The Message Processor and Router pod.
    MP_POD=gateway
    
    # The name of the region, corresponding to the data center name.
    REGION=dc-1 # Use dc-1 unless installing in a
                # multi-data center environment.
    
    # If you are using region names other than dc-1, dc-2 etc, set this property to map your region
    # name to the appropriate dc-x format region name. This property is required by Management server
    # to appropriately register Cassandra data stores based on Cassandra's data centers and regions.
    REGION_MAPPING="<custom-region-1>:dc-1 <custom-region-2>:dc-2 ... <custom-region-x>:dc-x"
    
    # ZooKeeper information.
    # See table below if installing in a multi-data center environment.
    ZK_HOSTS="$IP1 $IP2 $IP3"         # IP/DNS names of all ZooKeeper nodes.
    ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"  # IP/DNS names of all ZooKeeper nodes.
    
    # Cassandra information.
    CASS_CLUSTERNAME=Apigee    # Default name is Apigee.
    
    # Space-separated IP addresses of the Cassandra hosts (previously defined; do not use DNS names)
    # Syntax is: IP_address:host_number,rack_number
    CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"
    
    # Set to enable Cassandra authentication.
    # CASS_AUTH=y    # The default value is n.
    # Cassandra uname/pword required if you enabled Cassandra authentication.
    # CASS_USERNAME=
    # CASS_PASSWORD=''
    
    # Postgres username and password as set when you installed Edge.
    # Default is apigee:postgres.
    PG_USER=apigee
    PG_PWD=postgres
    
    # Use to enable Postgres master-standby replication
    # when you have multiple Postgres nodes.
    # PG_MASTER=IPorDNSofNewMaster
    # PG_STANDBY=IPorDNSofOldMaster
    
    # SMTP information.
    SKIP_SMTP=n       # Skip now and configure later by specifying "y".
    SMTPHOST=smtp.gmail.com
    SMTPUSER=your@email.com
    SMTPPASSWORD=yourEmailPassword
    SMTPSSL=y
    SMTPPORT=465      # If no SSL, use a different port, such as 25.
    SMTPMAILFROM="My Company <myco@company.com>"
    
    # The following four properties are only effective for Management server:
    # Cassandra JMX uname/pword required if you enabled Cassandra JMX authentication.
    # CASS_JMX_USERNAME =
    # CASS_JMX_PASSWORD =
    
    # Cassandra JMX SSL truststore details if you have enabled SSL based JMX in Cassandra.
    # JMX Truststore file should be readable by Apigee user
    # CASS_JMX_TRUSTSTORE =
    # CASS_JMX_TRUSTSTORE_PASS =
    
    # Set up username and password to access Qpid broker's management console
    
    QPID_MGMT_USERNAME=qpid
    QPID_MGMT_PASSWORD=Apigee1234
    
```

The following table contains additional information about these properties:

| Property | Note |
|---|---|
| IP/DNS names | Do not use a host name mapping to 127.0.0.1 or an IP address of 127.0.0.1 when specifying the IP address of a node. Note that for Cassandra host definitions, use IP addresses only; do not use DNS names. |
| `ENABLE_SYSTEM_CHECK` | If "y", check that the system meets the CPU and memory requirements for the component being installed. See [Installation Requirements](https://docs.apigee.com/private-cloud/v4.54.00/installation-requirements) for requirements for each component. The default value is "n" to disable check. |
| `ENABLE_DYNAMIC_HOSTIP` | If a server has multiple interface cards, the "hostname -i" command returns a space-separated list of IP addresses's. By default, the Edge installer uses the first IP address returned, which might not be correct in all situations. As an alternative, you can set the following property in the installation configuration file. When set to "y", the installer prompts you to select the IP address to use in the install. The default value is "n". > [!CAUTION] > **Caution:** If you set `ENABLE_DYNAMIC_HOSTIP=y`, ensure that your property file does not set `HOSTIP`. |
| `ADMIN_EMAIL` `APIGEE_ADMINPW` | The system administrator's password must be at least 8 characters long and contain one uppercase letter, one lowercase letter, one digit or one special character. If you omit the password, you will be prompted for it. After installation completes, Apigee recommends that you remove the password from the configuration file. |
| `LICENSE_FILE` | The location of the license file, which must be accessible to the "apigee" user. For example, store it in the /tmp directory and chmod 777 on the file. The file is copied to the Edge installation directory. |
| `APIGEE_LDAPPW` | Specifies the SymasLDAP password. After installation completes, Apigee recommends that you remove the password from the configuration file. |
| ``USE_LDAP_REMOTE_HOST `LDAP_HOST` `LDAP_PORT` `` | If `USE_LDAP_REMOTE_HOST` is n, Edge automatically installs SymasLDAP when it installs the Management Server. Set `USE_LDAP_REMOTE_HOST` to y if you are connecting to a remote LDAP server. SymasLDAP is not installed with the Management Server. If you are connecting to a remote SymasLDAP server, use `LDAP_HOST` and `LDAP_PORT` to specify the IP address or DNS name and port number of the host. |
| `LDAP_TYPE` `LDAP_SID` `LDAP_PEER` | Set `LDAP_TYPE`=1 for SymasLDAP with no replication. `LDAP_TYPE`=2 corresponds to SymasLDAP with replication. If your Edge topology uses a single SymasLDAP server, specify 1. If your Edge installation uses multiple SymasLDAP nodes, such as in a 13-node production installation, specify 2. If you enable replication, set the following properties: - `LDAP_SID`=1 - Unique ID for this LDAP server. Each LDAP node uses a different ID. For example, set to 2 for LDAP peer. - `LDAP_PEER`=10.0.0.1 - IP or DNS name of LDAP peer. |
| `MP_POD` | Specify the name of the Message Processor and Router pod. By default, the name is gateway. |
| `REGION` | Region name. By convention, names are typically in the form dc-# where # corresponds to an integer value. For example, dc-1, dc-2, etc. You can use dc-1 unless installing in a multi-data center environment. In a multiple data center installation, the value is dc-1, or dc-2, etc. depending on which data center you are installing. However, you are not restricted to using only names in the form dc-#. You can use any name for the region. |
| `REGION_MAPPING` | If you are using region names other than dc-1, dc-2 etc, set this property to map your region name to the appropriate dc-x format region name. This property is required by Management server to appropriately register Cassandra data stores based on Cassandra's data centers and regions. |
| `ZK_HOSTS` | The IP addresses or DNS names of the ZooKeeper nodes. The IP addresses or DNS names must be listed in the same order on all ZooKeeper nodes. Use the same format for `HOSTIP` as you use for `ZK_HOSTS`. That is, if you specify the IP address for `ZK_HOSTS` use an IP address for `HOSTIP`. If you use a DNS, then use a DNS name for both. In a multi-data center environment, list all ZooKeeper nodes from both data centers. Specify the ":observer" modifier on ZooKeeper nodes only when creating multiple data centers as described in a 12-host installation. In a single data center installation, omit that modifier. For more information, see [12-host clustered installation](https://docs.apigee.com/private-cloud/v4.54.00/install-edge-components-node#installedgecomponents-12hostclusteredinstallation). |
| `ZK_CLIENT_HOSTS` | The IP addresses or DNS names of the ZooKeeper nodes used by this data center. The IP addresses or DNS names must be listed in the same order on all ZooKeeper nodes. Use the same format for `HOSTIP` as you use for `ZK_CLIENT_HOSTS`. That is, if you specify the IP address for `ZK_CLIENT_HOSTS` use an IP address for `HOSTIP`. If you use a DNS, then use a DNS name for both. In a single data center installation, these are the same nodes as specified by `ZK_HOSTS`. In a multi-data center environment, list only the ZooKeeper nodes in this data center. For more information, see [12-host clustered installation](https://docs.apigee.com/private-cloud/v4.54.00/install-edge-components-node#installedgecomponents-12hostclusteredinstallation). |
| `CASS_CLUSTERNAME` | Optionally specify the name of the Cassandra cluster. The default name is "Apigee". |
| `CASS_HOSTS` | Specifies a comma-separated list of Cassandra nodes' host IP addresses (not DNS names), and optionally their data center number and the [rack](https://docs.apigee.com/private-cloud/v4.54.00/rack-support#what-is-a-rack) to which they belong. For production topologies, there must be at least three nodes in this list. The first two nodes are used as "seed servers". As a result, the IP addresses must be listed in the same order on all Cassandra nodes. The syntax for each entry in the list is as follows: ``` IP_address[:data_center_number,rack_number] ``` Cassandra nodes can optionally specify the data center and rack of the Cassandra node. Specify the <var translate="no">data_center_number</var> modifier only when creating multiple data centers as described in a 12-host installation. In a single data center installation, omit that modifier. For example '192.168.124.201:1,1 = datacenter 1 and rack/availability zone 1, and '192.168.124.204:2,1 = datacenter 2 and rack/availability zone 1. In a multi-datacenter environment, to overcome firewall issues, `CASS_HOSTS` must be ordered in a manner (as shown in above example) such that the nodes of the current datacenter are placed at the beginning. For more information, see [12-host clustered installation](https://docs.apigee.com/private-cloud/v4.54.00/install-edge-components-node#installedgecomponents-12hostclusteredinstallation). For information on specifying the <var translate="no">rack_number</var> for a Cassandra host, see [Add Cassandra rack support](https://docs.apigee.com/private-cloud/v4.54.00/rack-support). |
| `CASS_AUTH` `CASS_USERNAME` `CASS_PASSWORD` | If you enable Cassandra authentication, CASS_AUTH=y, you can pass the Cassandra user name and password by using these properties. After installation completes, Apigee recommends that you remove the password from the configuration file. |
| `CONFIG_DELTA_LOG` | `CONFIG_DELTA_LOG` controls how changes to configuration files are logged. If you set `CONFIG_DELTA_LOG=y`, configuration changes for a component are *not* logged. |
| `PG_USER` `PG_PWD` | By default, the PostgreSQL database has two users defined: 'postgres' and 'apigee'. `PG_USER` lets you change the username of the 'apigee' user. You cannot change the name of the 'postgres' user. By default, the PostgreSQL database has two users defined: 'postgres' and 'apigee'. Both users have a default password of 'postgres'. Use `PG_PWD` to set the password to a different value for both users at install time. After installation completes, Apigee recommends that you remove the password from the configuration file. |
| `PG_MASTER` `PG_STANDBY` | Set to enable Postgres master-standby replication, in the form: ``` PG_MASTER=IPorDNSofNewMaster PG_STANDBY=IPorDNSofOldMaster ``` > [!NOTE] > **NOTE:** Apigee strongly recommends that you use IP addresses rather than host names for the `PG_MASTER` and `PG_STANDBY` properties in your silent configuration file. In addition, you should be consistent on both nodes. > If you use host names rather than IP addresses, you must be sure that the host > names properly resolve using DNS. |
| `SKIP_SMTP` `SMTPHOST` `SMTPUSER` `SMTPPASSWORD` `SMTPSSL` `SMTPPORT` `SMTPMAILFROM` | Configure SMTP so Edge can send emails for lost passwords and other notifications. If SMTP user credentials are not required, omit `SMTPUSER` and `SMTPPASSWORD`. `SMTPMAILFROM` is required. |
| `CASS_JMX_USERNAME` | Cassandra JMX username. Required if you enabled Cassandra JMX authentication. |
| `CASS_JMX_PASSWORD` | Cassandra JMX password. Required if you enabled Cassandra JMX authentication. |
| `CASS_JMX_TRUSTSTORE` | Cassandra JMX SSL truststore username, if you have enabled SSL based JMX in Cassandra. The JMX Truststore file should be readable by Apigee user. |
| `CASS_JMX_TRUSTSTORE_PASS` | Cassandra JMX SSL truststore password, if you have enabled SSL based JMX in Cassandra. |
| `QPID_MGMT_USERNAME` `QPID_MGMT_PASSWORD` | These credentials provide access to the Qpid broker's [Qpid Web Management Console](https://qpid.apache.org/releases/qpid-broker-j-10.0.1/book/Java-Broker-Management-Channel-Web-Console.html). The Web Management Console provides a simple and intuitive interface for the management and control of the Qpid broker. |

In addition to the properties listed here, there are properties for configuring Apigee mTLS.
For more information, see [Configure Apigee mTLS](https://docs.apigee.com/private-cloud/v4.54.00/mtls-configure).