Control-M/Server Provisioning
The Control-M/Server provision process is supported on Windows with an MS SQL database and on Linux with an Oracle database. You can create a new Control-M/Server or transfer an existing Control-M/Server from one host to another (server rehydration).
Provisioning Control-M/Server is based on images. An image is JSON code that lists the installation packages in the order they are installed. Control-M Automation API provides several default images, and you can create custom images that include, for example, a newer version of Control-M/Server.
You must obtain the Control-M/Server installation packages that are referenced in the images before provisioning. You can save these installation packages in a customized location, such as in a JFrog Artifactory repository, Amazon S3 buckets, or a local file system. Alternatively, you can set up a local repository to save the installation packages and images.
You can provision Control-M/Server with one of the following methods:
-
Run separate image and setup commands: Enables you to download and prepare the installation files for Control-M/Server with the image command. You can later install and register Control-M/Server with the setup command. This is useful for dynamic installations, such as installations that use a VM image.
-
Run a single install command: Performs the full Control-M/Server installation process with a single install command. This is useful for static architectures that do not distinguish between image building and instantiation.
Control-M/Serversetup or installation is based on settings that you define in a configuration file that is a payload JSON file. For the full description of this configuration file, see Control-M/Server Provisioning.
The following API commands enable you to provision or uninstall Control-M/Server:
-
provision images: (For Control-M/Servers and Agents) Lists all existing images.
-
provison image: (For Control-M/Servers and Agents) Downloads and prepares an image.
-
provision server::setup: Installs a Control-M/Server and registers it in the Control-M environment.
-
provision server::install: Combines the image and setup commands into one action.
-
provision image::remove: (For Control-M/Servers and Agents) Removes an image from the user account.
-
provision server::uninstall: Uninstalls a Control-M/Server from the user account and unregisters it from the Control-M environment.
provision server::setup
The provision server::setup command enables you to install a Control-M/Server and registers it in the Control-M environment.
This API command is supported only through the CLI and cannot be called through a REST API command.
CLI Syntax
The following shows the CLI syntax for the provision server::setup command:
ctm provision server::setup -f <configuration file>
where <configuration file> defines the pathname to a JSON file that contains the Control-M/Server definitions. For the full description of this configuration file, see Control-M/Server Provisioning.
If annotation is enabled for the Configuration Management category in the CCM or Configuration domain, you must also provide an annotation to justify your action. For more information, see Annotation Input.
provision server::install
The provision server::install command enables you to combine the image and setup commands into one action. It downloads the Control-M/Server, installs it and registers it in the Control-M environment.
This API command is supported only through the CLI and cannot be called through a REST API command.
CLI Syntax
The following shows the CLI syntax for the provision server::install command:
ctm provision server::install <image> -f <configuration file>
The following table describes the provision server::install command parameters.
|
Parameter |
Description |
|---|---|
|
image |
Defines the image that you want to install. This is one of the images returned by the provision images command. |
|
configuration file |
Defines the pathname to a JSON file that contains the Control-M/Server definitions. For the full description of this configuration file, see Control-M/Server Provisioning. |
If annotation is enabled for the Configuration Management category in the CCM or Configuration domain, you must also provide an annotation to justify your action. For more information, see Annotation Input.
provision server::uninstall
The provision server::uninstall command enables you to uninstall a Control-M/Server from the user account and unregisters it from the Control-M environment.
This API command is supported only through the CLI and cannot be called through a REST API command.
CLI Syntax
The following shows the CLI syntax for the provision server::uninstall command:
ctm provision server::uninstall [server]
where [server] is the name of the Control-M/Server. This is required only on a Linux host that has multiple Control-M/Servers installed.
If annotation is enabled for the Configuration Management category in the CCM or Configuration domain, you must also provide an annotation to justify your action. For more information, see Annotation Input.
Server Provisioning Configuration
This page provides information for creating a configuration file for the provisioning of a Control-M/Server. This configuration file is a payload JSON file that contains the details of a Control-M/Server that you want to provision.
The exact group of properties that you include in the configuration file depends on the following considerations:
|
Consideration |
Options |
|---|---|
|
OS and database |
|
|
Type of installation |
|
The following code samples show the available objects and properties that you can include within such a file for each type of installation. The rest of this page provides descriptions of all properties.
New server on Windows with MS SQL database
{
"JavaHome": "C:\\java\\Eclipse_Adoptium_jre-17.0.6.10-hotspot",
"Installation": "new",
"ControlMName": "MyControlMName",
"InstallPath": "C:\\Program Files\\BMC Software",
"Database": {
"Vendor": "MSSQL",
"Host": "10.10.10.10",
"Port": 1433,
"AdminLogin": "manager",
"AdminPassword": "*********",
"OwnerLogin": "ctmuser",
"OwnerPassword": "*********",
"Size": "Small",
"TablespaceSize": 250,
"Databasename": "ctrlmdb",
"CJK": "false",
"FullPathName": "C:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\ctmuser.dat"
},
"Log": {
"Size": 90,
"FullPath": "C:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\ctmuser.log"
},
"Configuration": {
"Hostname": "10.10.10.10",
"ControlMEMTcpIpPort": 2370,
"IPCPort": 6005,
"ConfigurationAgentPort": 2369,
"ServerToAgentPort": 7006,
"AgentToServerPort": 7005,
"HighAvailabilityPort": 2368
}
}
Rehydrated server on Windows with MS SQL database
{
"JavaHome": "C:\\java\\Eclipse_Adoptium_jre-17.0.6.10-hotspot",
"Installation": "rehydrate",
"Database": {
"Host": "10.10.10.10",
"Port": 1433,
"OwnerLogin": "ctmuser",
"OwnerPassword": "*********"
},
"Configuration": {
"Hostname": "10.10.10.10",
"ControlMEMTcpIpPort": 2370,
"IPCPort": 6005,
"ConfigurationAgentPort": 2369,
"ServerToAgentPort": 7006,
"AgentToServerPort": 7005,
"HighAvailabilityPort": 2368
},
"PrimaryServer": {
"Database": "MSSQL",
"Installation": "CTM",
"Hostname": "server1"
}
}
New server on Linux with Oracle database
{
"JavaHome": "C:\\java\\Eclipse_Adoptium_jre-17.0.6.10-hotspot",
"Installation": "new",
"ControlMName": "MyControlMName",
"Database": {
"Vendor": "Oracle",
"InstanceName": "ORCL",
"Host": "10.10.10.10",
"Port": 1521,
"AdminLogin": "manager",
"AdminPassword": "********",
"OwnerLogin": "ctmuser",
"OwnerPassword": "********",
"Size": "Small",
"TablespaceSize": 250,
"TablespaceName": "ctmuser_tbs"
},
"Configuration": {
"Hostname": "10.10.10.10",
"ControlMEMTcpIpPort": 2370,
"IPCPort": 6005,
"ConfigurationAgentPort": 2369,
"ServerToAgentPort": 7006,
"AgentToServerPort": 7005,
"HighAvailabilityPort": 2368
}
}
Rehydrated server on Linux with Oracle database
{
"JavaHome": "C:\\java\\Eclipse_Adoptium_jre-17.0.6.10-hotspot",
"Installation": "rehydrate",
"Database": {
"InstanceName": "ORCL",
"Host": "10.10.10.10",
"Port": 1521,
"OwnerLogin": "ctmuser",
"OwnerPassword": "********"
},
"Configuration": {
"Hostname": "10.10.10.10",
"ControlMEMTcpIpPort": 2370,
"IPCPort": 6005,
"ConfigurationAgentPort": 2369,
"ServerToAgentPort": 7006,
"AgentToServerPort": 7005,
"HighAvailabilityPort": 2368
},
"PrimaryServer": {
"Database": "Oracle",
"Installation": "CTM",
"Hostname": "server1"
}
}
General Settings
The following table describes the General Settings object properties, which are at the top of the configuration file and define the basic settings of the Control-M/Server.
|
Property |
Description |
|---|---|
|
JavaHome |
Defines the path where a JRE is installed. If you upgrade Control-M/Server to version 9.0.21, you must set the JavaHome parameter. |
|
Installation |
Determines the type of installation:
|
|
ControlMName |
(New Control-M/Server only) Defines a logical name for the new Control-M/Server. |
|
InstallPath |
(New Control-M/Server on MSSQL only) Defines the installation path of the Control-M/Server on an MS SQL host. Typically, this is C:\\Program Files\\BMC Software |
Database Settings
The following table lists the database-related properties that appear under the Database object, indicating the types of installations and databases for which each property is required.
|
Property |
Description |
New MS SQL |
Rehydrate MS SQL |
New Oracle |
Rehydrate Oracle |
|---|---|---|---|---|---|
|
Vendor |
Database vendor, either Oracle or MSSQL. |
Yes |
No |
Yes |
No |
|
InstanceName |
Name of the Oracle database instance. |
No |
No |
Yes |
Yes |
|
Host |
Host name, IP address, or alias of the database host machine. |
Yes |
Yes |
Yes |
Yes |
|
Port |
Number of the TCP/IP port for communication between Control-M and the database. |
Yes |
Yes |
Yes |
Yes |
|
AdminLogin |
Database administrator username. |
Yes |
No |
Yes |
No |
|
AdminPassword |
Database administrator password. |
Yes |
No |
Yes |
No |
|
OwnerLogin |
Name of the Control-M/Server database owner. |
Yes |
Yes |
Yes |
Yes |
|
OwnerPassword |
Password of the Control-M/Server database owner. |
Yes |
Yes |
Yes |
Yes |
|
Size |
Textual category for database memory requirements — SMALL, MEDIUM, or LARGE. |
Yes |
No |
Yes |
No |
|
TablespaceSize |
Total size of the Control-M/Server database. |
Yes |
No |
Yes |
No |
|
TablespaceName |
Name of the Oracle tablespace. |
No |
No |
Yes |
No |
|
DatabaseName |
Name of the Control-M/Server MS SQL database. |
Yes |
No |
No |
No |
|
CJK |
Whether the database supports CJK characters, either true or false. |
Yes |
No |
No |
No |
|
FullPathName |
Defines the MSSQL database installation pathname. Example: C:\\Program Files\\Microsoft SQL Server\\ MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\ctmuser.dat |
Yes |
No |
No |
No |
Two more properties under the Log object are relevant only for a new server on MSSQL.
|
Property |
Description |
|---|---|
|
Size |
Determines the amount of space (MB) to allocate for the Control-M/Server database log. |
|
FullPath |
Defines the Control-M/Server database log pathname. C:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\ctmuser.log |
Control-M settings
The following properties under the Configuration object define settings for the Control-M/Server that you are provisioning and its interaction with the Control-M environment.
|
Property |
Description |
|---|---|
|
Hostname |
Host name, IP address, or alias of the machine on which to install the Control-M/Server . |
|
ControlMEMTcpIpPort |
Number of Control-M/Server port that listens for communication from Control-M/EM. Valid Values: 1025–32767. Typical value: 2370 |
|
IPCPort |
Number of port used by the RT process for inter-process communication (IPC). Valid Values: 1025–32767. Typical value: 6005 |
|
ConfigurationAgentPort |
Number of port for communication from the Control-M/Server to the Control-M/EMConfiguration Server. Valid Values: 1025–32767 Typical value: 2369 |
|
ServerToAgentPort |
Number of port used by the Agent to receive communication from the Control-M/Server . Valid Values: 1024–65534 Typical value: 7006 |
|
AgentToServerPort |
Number of port used by the Control-M/Server to receive communication from the Agent. Valid Values: 1024–65534 Typical value: 7005 |
|
HighAvailabilityPort |
Number of port for communication between the Control-M/Server Configuration Agents on the primary and secondary host in a High Availability (HA) environment. Typical value: 2368 |
When performing server rehydration, the following additional properties under the PrimaryServer object define the primary server from which the Control-M/Server is being transferred.
|
Property |
Description |
|---|---|
|
Database |
Type of database on the primary server, either Oracle or MSSQL. |
|
Installation |
Type of installation. Currently only CTM is supported. |
|
Hostname |
Host name, IP address, or alias of the machine that hosts the primary server. |
