Passive install using Amster
Use Amster to configure a deployed AM instance as either a single, standalone server or as a server within a site.
Amster configures AM to use an external configuration store and identity store.
| You can’t use Amster to install PingAM in file-based configuration (FBC) mode. Instead, follow the instructions in Passive install with FBC. |
To configure AM with Amster, run the install-openam command:
Usage:
am> install-openam \ --serverUrl protocol://FQDN:port/URI \ --adminPwd amAdmin_password \ [options]
--serverUrl protocol://FQDN:port/URI-
The protocol, URL, port, and deployment URI of the AM instance. For example,
https://am.example.com:8443/am. --adminPwd amAdmin-password-
The password of the
amAdminuser. If the--cfgStoreDirMgrPwdoption is not specified, this value is also the password of the configuration store’s directory manager user.The password must be at least 8 characters in length.
Options:
[options]-
Use these optional parameters to configure properties like the cookie domain, ports, and passwords for the configuration store.
To see all available options, run the
:help install-openamcommand or read Configuration options.
Examples
Before you start, make sure your AM instance is deployed and running, but not yet configured. Learn more in Deploy AM.
Before you run the amster command, you must create a truststore for AM, and prepare the external
configuration and identity stores.
Learn more in Prepare datastores.
You can’t install AM with an external configuration store that already contains configuration data, unless you’re adding a server to an existing site.
|
Amster also supports scripting the installation process. Learn more in Scripts. |
Example 1: Standalone server
This example installs AM with external configuration and identity stores.
am> install-openam \
--serverUrl https://am.example.com:8443/am \
--adminPwd Ch4ng31t \
--acceptLicense \
--cfgStoreDirMgrPwd Ch4ng31t \
--cfgStore dirServer \
--cfgStoreHost ds.example.com \
--cfgStoreAdminPort 4444 \
--cfgStorePort 1636 \
--cfgStoreSsl SSL \
--cfgStoreRootSuffix ou=am-config \
--userStoreDirMgrPwd Ch4ng31t \
--userStoreHost ds.example.com \
--userStoreType LDAPv3ForOpenDS \
--userStorePort 1636 \
--userStoreSsl SSL \
--userStoreRootSuffix ou=identities
timestamp: Checking license acceptance…
timestamp: License terms accepted.
timestamp: Checking configuration directory /Users/Ping/am.
timestamp: …Success.
timestamp: Tag swapping schema files.
timestamp: …Success.
…
timestamp: Loading Schema /Users/Ping/am/opendj_pushdevices.ldif
timestamp: …Success.
timestamp: Installing new plugins…
timestamp: Plugin installation complete.
timestamp: Setting up monitoring authentication file.
Configuration complete!
-
When you install AM locally, Amster stores the AM configuration in the home directory of the user running the
amstercommand. For example, for thetomcatuser, the configuration is stored in/path/to/tomcat_home/am. To change this location, use the--cfgDiroption. -
The DS instances in this example require secure connections, so the
amstercommand specifies port1636andSSLfor both stores.Find information about other options in Configuration options.
You must create a truststore and configure it in the AM container. If you don’t, the installation will fail.
-
If a problem occurs while setting up the configuration store, the installation process exits with an error. When this happens, going to the AM URL opens the configuration page.
Example 2: Two servers in a site
This example shows how to install two AM servers in a site with external configuration and identity stores.
Before you start, create a truststore for each AM server and prepare the external stores. Because both servers share the configuration and identity store, their truststores must contain the same certificates.
First instance:
am> install-openam \ --serverUrl https://am1.example.com:8443/am \ --adminPwd Ch4ng31t \ --acceptLicense \ --cookieDomain example.com \ --lbSiteName TestSite01 \ --cfgDir /tomcat/am1 \ --lbPrimaryUrl https://site.example.com:8443/am \ --cfgStoreDirMgr uid=am-config,ou=admins,ou=am-config \ --cfgStoreDirMgrPwd Ch4ng31t --cfgStore dirServer \ --cfgStoreHost ds.example.com \ --cfgStoreAdminPort 3444 \ --cfgStorePort 1636 \ --cfgStoreSsl SSL \ --cfgStoreRootSuffix ou=am-config \ --userStoreDirMgrPwd Ch4ng31t \ --userStoreHost ds.example.com \ --userStoreType LDAPv3ForOpenDS \ --userStorePort 1636 \ --userStoreSsl SSL \ --userStoreRootSuffix ou=identities timestamp: Checking license acceptance… timestamp: License terms accepted. timestamp: Checking configuration directory /tomcat/am1. timestamp: …Success. … timestamp: …Success. … timestamp: …Success. timestamp: Installing new plugins… timestamp: Plugin installation complete. timestamp: Setting up monitoring authentication file. Configuration complete!
-
Amster creates the directory specified with the
--cfgDiroption. -
The
--lbSiteNameoption creates a site with that name, accessible at the URL specified with--lbPrimaryUrl. -
Use the
--cookieDomainoption to set the cookie domain. If you don’t specify it, Amster uses the server’s URL, which isn’t optimal for a site with multiple servers.
Second instance:
am> install-openam \ --serverUrl https://am2.example.com:8443/am \ --adminPwd Ch4ng31t \ --acceptLicense \ --cookieDomain example.com \ --lbSiteName TestSite01 \ --cfgDir /tomcat/am2 \ --lbPrimaryUrl https://site.example.com:8443/am \ --cfgStoreDirMgr uid=am-config,ou=admins,ou=am-config \ --cfgStoreDirMgrPwd Ch4ng31t \ --cfgStore dirServer\ --cfgStoreHost ds.example.com \ --cfgStoreAdminPort 3444 \ --cfgStorePort 1636 \ --cfgStoreSsl SSL \ --cfgStoreRootSuffix ou=am-config \ --userStoreDirMgrPwd Ch4ng31t \ --userStoreHost ds.example.com \ --userStoreType LDAPv3ForOpenDS \ --userStorePort 1636 \ --userStoreSsl SSL \ --userStoreRootSuffix ou=identities \ --pwdEncKey MneLwkkOokJx58znp7QyvGmiawmc2vl4 timestamp: Checking license acceptance… timestamp: License terms accepted. timestamp: Checking configuration directory /tomcat/am2. timestamp: …Success. timestamp:Reinitializing system properties. timestamp:…Done timestamp:Configuring server instance. timestamp: …Done timestamp: Installing new plugins… timestamp: Plugin installation complete. timestamp: Setting up monitoring authentication file. Configuration complete!
|
To finish adding the second server to the site, you must follow the steps in Post-installation steps for site deployments. |
-
This command adds a new AM server to the
TestSite01site. The configuration store details are identical to the first server’s, as they share the same DS instance. -
The password for
--adminPwdmust be the same one used for all other servers in the site. -
The
--cookieDomainmust be the same as the one used for the first server (example.com).If this option isn’t set correctly, you might not be able to sign in to the new server.
-
The
--pwdEncKeyoption specifies the encryption key used by the existing servers in the site. To find this key, sign in to an existing server and go to Deployment > Servers > Server Name > Security > Encryption.You must set this option to the correct value. If you don’t, the original encryption key will be overwritten, which will prevent the site from reading the configuration and identity stores.
Configuration options
The following options are available to use with the install-openam command:
--acceptLicense-
Indicates the user accepts Amster usage terms and conditions.
--authorizedKeypath-
The path to an SSH public key file. The content of this file is appended to the
authorized_keysfile of the newly-installed AM instance, allowing users to connect to it with Amster after the install completes.Find more information about connecting to AM with Amster in Connect to AM.
--cfgDirpath-
The configuration directory where AM stores files, such as
$HOME/am. --cfgStoredirServer-
Set this to
dirServerto install AM with an external DS server as the configuration store.By default, identities are stored in the same directory server instance as the configuration store.
You must use an external directory server for the configuration store. If you try to install AM with the
--cfgStore embeddedoption, the installation fails with the following exceptionFrom AM 8, embedded DS configuration is not supported. --cfgStoreAdminPortport-
The administration port number for the configuration store, such as
4444. --cfgStoreDirMgrusername-
The bind DN of the configuration store user account, such as
uid=am-config,ou=admins,ou=am-config. --cfgStoreDirMgrPwdpassword-
The password for the bind DN. If not set, it takes the password defined for the
--adminPwdoption. --cfgStoreHostFQDN-
The FQDN of the configuration store directory server host, for example,
ds.example.com. --cfgStorePortport-
The LDAPS or LDAP port number for the configuration store directory server, such as
1636or1389. --cfgStoreRootSuffixDN-
The root suffix DN for the configuration store, such as
ou=am-config. --cfgStoreSsl [SIMPLE|SSL]-
Set this to
SSLto use LDAP with SSL. DS is configured for LDAPS by default. To use LDAP without SSL, set this toSIMPLE. --cookieDomaindomain-
The name of the trusted DNS domain AM returns to a browser when it grants a session ID to a user.
Default: FQDN used in the
--serverUrloption --installLocalelocale-
The locale to use during the install process.
Default:
en_US --lbPrimaryUrlURL-
The load balancer URL of the site, such as
https://lb.example.com:443/am --lbSiteNamename-
The name of the site to create, if any.
--platformLocalelocale-
The default locale for the AM installation.
Default:
en_US --pwdEncKeykey-
The encryption key value used to encrypt passwords in the AM instance. For example
O6QWwHPO4os+zEz3Nqn/2daAYWyiFE32.If you’re installing an AM instance that will use existing data, you must provide the same encryption key value originally used to encrypt the passwords in those data stores.
To locate the encryption key value in an AM instance, navigate to Deployment > Servers > server name > Security > Encryption.
If you are installing a new AM instance that won’t use existing data in a data store, you can leave this property empty. AM generates a random encryption key during installation to encrypt the data that will be added to the data store.
This option is required when configuring an AM instance into a site, and must be set to the encryption key configured for the rest of the servers in the site. Failure to set this option to the appropriate value will cause the original encryption key to be overwritten, which will render the site unable to read the configuration, and the identity stores.
Default: No value; a random encryption key is generated during installation
--userStoreDirMgrusername-
The bind DN of the identity store user account, such as
uid=am-identity-bind-account,ou=admins,ou=identities. --userStoreDirMgrPwdpassword-
The password for the bind DN.
--userStoreDomainNameFQDN-
The Active Directory Domain Name, such as
ad.example.com, when the--userStoreTypeoption is set toLDAPv3ForADDC. --userStoreHostFQDN-
The FQDN of the identity store directory server, such as
ds.example.com. --userStorePortport-
The LDAPS or LDAP port number for the identity store. Default for LDAPS is
636and for LDAP is389. --userStoreRootSuffixDN-
The root suffix DN for the identity store, such as
ou=identities. --userStoreSsl [SIMPLE|SSL]-
Set this to
SSLto use LDAP with SSL. DS is configured for LDAPS by default. To use LDAP without SSL, set this to SIMPLE. --userStoreTypetype-
The type of directory server used for the identity store. Possible values for type are:
-
LDAPv3ForAD: Active Directory with host and port settings -
LDAPv3ForADDC: Active Directory with domain name settingIf you use this type, you must also set the
--userStoreDomainNameoption. -
LDAPv3ForADAM: Active Directory Lightweight Directory Services (AD LDS) -
LDAPv3ForForgeRockIAM: PingDSOnly use this type if DS is the shared identity store in a Ping Identity Platform deployment. Otherwise, use
LDAPv3ForOpenDS. -
LDAPv3ForOpenDS: PingDS -
LDAPv3ForPingDirectory: PingDirectory
-
--userStoreDomainName-
If
--userStoreTypeisLDAPv3ForADDC, set this to the Active Directory Domain Name, such asad.example.com. Then only set the--userStoreSsl,--userStoreDirMgr, and--userStoreDirMgrPwdoptions to let Active Directory use DNS to retrieve service locations. Otherwise, don’t set this option.
Post-installation steps for site deployments
All AM servers in a site share the same keystore and secret store infrastructure. This sharing ensures every server in the site can encrypt, decrypt, and verify items like messages and JWTs with the same keys.
The installation process creates these stores only on the first server in the site. You must manually configure them on all other servers you add to the site.
After you’ve used Amster to add a new server to your site, follow these steps:
-
Make the site keystore infrastructure available to the new instance:
-
Back up the new instance’s default keystore and password files in the following locations:
-
/path/to/am/security/keystores/ -
/path/to/am/security/secrets/default/
-
-
Make the existing site keystores available to the new server in the same location. For example, you might copy the keystores and their password files, or mount a shared volume.
-
Make sure the keystore files configured in the
/path/to/am/config/boot.jsonare available to the new instance.
-
-
Make the secret store infrastructure in the site available to the new instance:
-
Sign in to the AM admin UI of an existing server in the site and go to Configure > Secret Stores.
-
Review the list of globally configured secret stores and make sure the new server has access to the required stores. For example:
-
For keystore-type secret stores, copy the keystores to the same path on the new server.
-
For filesystem-type secret stores, copy the directory contents to the same path, or make the filesystem available on the same mount point.
-
For HSM-type stores, make sure the new server can access the HSM.
-
For secrets configured as environment variables, make sure the new server’s container can access them.
-
-
Go to Realms > realm name > Secret Stores.
-
Review the list of realm-specific secret stores and provide access to the new server as needed.
-
-
Restart the new server.
The server is now fully configured and part of the site.
Troubleshoot AM installations
The following table describes possible errors when installing AM with the install-openam command:
| Error | Solution |
|---|---|
|
Check that the suffix you are trying to use exists in DS. |
|
Check the credentials you’re using to connect to DS. |
|
Check the DS host and connection port. |
|
Check the DS logs. DS may be stopped or may have become unreachable during the installation. |
|
Make sure the container where AM is installed trusts the DS SSL certificates. |