docs.intersystems.com
InterSystems IRIS Data Platform 2019.2  /  InterSystems Cloud Manager Guide  /  Using ICM  /  Deploy and Manage Services

InterSystems: The power behind what matters   
Search:  


The icm run Command
The icm run command pulls, creates, and starts a container from the specified image on each of the provisioned nodes. By default, the image specified by the DockerImage field in the configuration files is used, and the name of the deployed container is iris. This name is reserved for and should be used only for containers created from the following InterSystems images (or images based on these images):
By including the DockerImage field in each node definition in the definitions.json file, you can run different InterSystems IRIS images on different node types. For example, you must do this to run the arbiter image on the AR node and the webgateway image on WS nodes while running the iris image on the other nodes.
Important:
When the DockerImage field specifies the iris or spark image in the defaults.json file and you include an AR or WS definition in the definitions.json file, you must use include the DockerImage field in the AR or WS definition to override the default and specify the appropriate image (arbiter or webgateway, respectively) and avoid configuration errors.
Docker images from InterSystems comply with the OCI support specification, and are supported on Docker Enterprise Edition and Community Edition 18.03 and later. The version of Docker installed on provisioned nodes by the ICM command can be specified using the DockerVersion parameter; for more information, see General Parameters.
The InterSystems spark, arbiter, and webgateway images are not intended for use outside of ICM.
You can also use the -image and -container command-line options with icm run to specify a different image and container name. This allows you to deploy multiple containers created from multiple images on each provisioned node by using the icm run command multiple times — the first time to run the images specified by the DockerImage fields in the node definitions and deploy the iris container (of which there can be only one) on each node, as described in the foregoing paragraphs, and one or more subsequent times with the -image and -container options to run a custom image on all of the nodes or some of the nodes. Each container running on a given node must have a unique name. The -machine and -role options can also be used to restrict container deployment to a particular node, or to nodes of a particular type, for example, when deploying your own custom container on a specific provisioned node.
Another frequently used option, -iscPassword, specifies the InterSystems IRIS password to set for all deployed InterSystems IRIS containers; this value could be included in the configuration files, but the command line option avoids committing a password to a plain-text record. If the InterSystems IRIS password is not provided by either method, ICM prompts for it (with typing masked).
Note:
For security, ICM never transmits the InterSystems IRIS password (however specified) in plain text, but instead generates a hashed password and salt locally, then sends these using SSH to the deployed InterSystems IRIS containers on the compute nodes.
Given all of the preceding, consider the following three examples of container deployment using the icm run command. (These do not present complete procedures, but are limited to the procedural elements relating to the deployment of particular containers on particular nodes.)
Bear in mind the following further considerations:
Additional Docker options, such as --volume, can be specified on the icm run command line using the -options option, for example:
icm run -options "--volume /shared:/host" image intersystems/iris:stable
For more information on the -options option, see Using ICM with Custom and Third-Party Containers.
The -command option can be used with icm run to provide arguments to (or in place of) the Docker entry point; for more information, see Overriding Default Commands.
Because ICM issues Docker commands in multiple threads, the order in which containers are deployed on nodes is not deterministic. This is illustrated in the example that follows.
Important:
Unlike the icm provision command, the icm run command cannot simply be repeated if it fails on one or more nodes. Generally speaking, there are two causes for deployment failures.
The following example represents output from deployment of the sharded cluster configuration described in Define the Deployment. Repetitive lines are omitted for brevity.
$ icm run -definitions definitions_cluster.json
Executing command 'docker login' on ACME-DM-TEST-0001...
...output in /Samples/AWS/ICM-8620265620732464265/Sample-DM-TEST/ACME-DM-TEST-0001/docker.out
...
Pulling image intersystems/iris:stable on SHARD-DM-TEST-0001...
...pulled SHARD-DM-TEST-0001 image intersystems/iris:stable
...
Creating container iris on ACME-DS-TEST-0002...
...
Copying license directory /Samples/license/ to ACME-AM-TEST-0003...
...
Starting container iris on ACME-DS-TEST-0004...
...
Waiting for InterSystems IRIS to start on ACME-DS-TEST-0002...
...
Configuring SSL on ACME-DM-TEST-0001...
...
Enabling ECP on ACME-DS-TEST-0003...
...
Setting System Mode on ACME-DS-TEST-0002...
...
Acquiring license on ACME-DS-TEST-0002...
...
Enabling shard service on ACME-DM-TEST-0001...
...
Assigning shards on ACME-DM-TEST-0001...
...
Configuring application server on ACME-AM-TEST-0003...
...
Management Portal available at: http://ec2-00-153-49-109.us-west-1.compute.amazonaws.com:52773/csp/sys/UtilHome.csp 
At completion, ICM outputs a link to the Management Portal of the appropriate InterSystems IRIS instance. In this case, the provided Management Portal link is for the shard master data server running in the InterSystems IRIS container on ACME-DM-TEST-001.


Send us comments on this page
View this book as PDF   |  Download all PDFs
Copyright © 1997-2019 InterSystems Corporation, Cambridge, MA
Content Date/Time: 2019-09-19 06:44:29