Skip to main content
Previous section   Next section

Containerless Deployment

If you want to use ICM to provision cloud infrastructure and install noncontainerized InterSystems IRIS instances on that infrastructure, or to install InterSystems IRIS on a PreExisting cluster, you can do so using containerless mode.

In essence, containerless mode replaces the containerized deployment of InterSystems IRIS by ICM with direct installation from traditional kits, while retaining all the other steps in the ICM provisioning and deployment process. This is accomplished by adding two commands to ICM and adapting several others.

In containerless mode, Docker is not installed on the provisioned nodes and the icm run command cannot be used to deploy containers on those nodes.

Containerless Deployment Platforms

Operating systems supported for containerless deployment include:

  • Ubuntu 18.04 or later

  • Red Hat Enterprise Linux 7.3 to 7.7

  • SUSE Enterprise Linux 12 SP4, 15, and 15 SP1

The following operating systems are not supported but have been tested:

  • CentOS

Enabling Containerless Mode

Enable containerless mode by adding the Containerless field to the defaults.json file with a value of true, for example:

{
    "Containerless": "true",
    "Provider": "AWS",
    "Label": "Acme",
    "Tag": "TEST"
    "LicenseDir": "/Samples/license/",
    "Credentials": "/Samples/AWS/sample.credentials",
    ...
}
Copy code to clipboard

Installing InterSystems IRIS

To install InterSystems IRIS on your provisioned nodes using the installation kit you have selected, use the icm install command, which does not exist in container mode. The kit is identified by the KitURL field, which specifies the path to the installation kit and can be added to either defaults.json or definitions.json. The specified kit must be all of the following:

  • Accessible by the node on which InterSystems IRIS is to be installed (though not necessarily by the ICM container itself)

  • A 64-bit Linux kit

  • A gzipped tar file

For example, in the definitions file:

[
    {
        "Role": "DM",
        "Count": "1",
        "DataVolumeSize": "50",
        "InstanceType": "m4.xlarge",
        "KitURL": "http://kits.acme.com/iris/2019.4.0/unix/IRIS-2019.4.0.792.0-lnxrhx64.tar.gz"
    },
    {
        "Role": "AM",
        "Count": "2",
        "StartCount": "2",
        "LoadBalancer": "true",
        "KitURL": "http://kits.acme.com/iris/2019.4.0/unix/IRIS-2019.4.0.792.0-lnxrhx64.tar.gz"
    }
]
Copy code to clipboard

In the defaults file:

{
    "Containerless": "true",
    "KitURL": "http://kits.acme.com/iris/2019.4.0/unix/IRIS-2019.4.0.792.0-lnxrhx64.tar.gz"
    "Provider": "AWS",
    "Label": "Acme",
    "Tag": "TEST"
    "LicenseDir": "/Samples/license/",
    "Credentials": "/Samples/AWS/sample.credentials",
    ...
}
Copy code to clipboard
Note:

The KitURL can be a reference to a local file copied to the provisioned nodes, which may be convenient under some circumstances. For example, you can include this KitURL in the defaults file:

"KitURL": "file://tmp/IRIS-2019.4.0.792.0-lnxrhx64.tar.gz"

and use the icm scp command to copy the kit to the provisioned nodes before executing the icm install command, for example:

icm scp -localFile IRIS-2019.4.0.792.0-lnxrhx64.tar.gz -remoteFile /tmp

When you execute the icm install command, ICM installs InterSystems IRIS from the specified kit on each applicable node, resulting in output like the following:

Downloading kit on Acme-DM-TEST-0001...
Downloading kit on Acme-AM-TEST-0002...
Downloading kit on Acme-AM-TEST-0003...
...downloaded kit on Acme-AM-TEST-0002
...downloaded kit on Acme-AM-TEST-0003
...downloaded kit on Acme-DM-TEST-0001
Installing kit on Acme-AM-TEST-0003...
Installing kit on Acme-DM-TEST-0001...
Installing kit on Acme-AM-TEST-0002...
...installed kit on Acme-AM-TEST-0002
...installed kit on Acme-DM-TEST-0001
...installed kit on Acme-AM-TEST-0003
Starting InterSystems IRIS on Acme-DM-TEST-0001...
Starting InterSystems IRIS on Acme-AM-TEST-0002...
Starting InterSystems IRIS on Acme-AM-TEST-0003...
...started InterSystems IRIS on Acme-AM-TEST-0002
...started InterSystems IRIS on Acme-AM-TEST-0003
...started InterSystems IRIS on Acme-DM-TEST-0001
Management Portal available at: http://172.16.110.14:52773/csp/sys/UtilHome.csp
Copy code to clipboard
Note:

You can use the UserCPF field and a CPF merge file to install multiple instances with different configuration settings from the same kit; for more information, see Deploying with Customized InterSystems IRIS Configurations in the “ICM Reference” chapter.

Reinstalling InterSystems IRIS

To make the containerless deployment process as flexible and resilient as possible, the icm install command is fully reentrant — it can be issued multiple times for the same deployment. In this regard it is similar to the icm run command, as described in Redeploying Services in the “Using ICM” chapter.

When an icm install command is repeated, ICM stops and uninstalls the installed instances, then installs InterSystems IRIS from the specified kit again. You might want to repeat the command for one of the following reasons:

  • Reinstalling the existing instances.

    To replace the installed InterSystems IRIS instances with new ones from the same kit, simply repeat the original icm run command that first deployed the containers. You might do this if you have made a change in the definitions files that requires reinstallation, for example you have updated the licenses in the directory specified by the LicenseDir field.

  • Installing InterSystems IRIS on nodes you have added to the infrastructure, as described in Reprovisioning the Infrastructure.

    When you repeat an icm install command after adding nodes to the infrastructure, instances on the existing nodes are reinstalled as described in the preceding, while new instances are installed on the new nodes. This allows the existing nodes to be reconfigured for the new deployment topology, if necessary.

  • Overcoming deployment errors.

    If the icm install command fails on one or more nodes due to factors outside ICM’s control, such as network latency or interruptions, you can issue the command again; in most cases, deployment will succeed on repeated tries. If the error persists, however, it may require manual intervention — for example, if it is caused by an error in one of the configuration files — before you issue the command again.

Uninstalling InterSystems IRIS

The icm uninstall command, which does not exist in container mode, is used in containerless mode to stop and uninstall all InterSystems IRIS instances in the deployment (without options). You can use the -role and -machine options, as usual, to limit the command to a specific role or node. For example,

icm uninstall

uninstalls InterSystems IRIS on all nodes in the deployment, while

icm uninstall -role AM

uninstalls InterSystems IRIS on the AM nodes only.

Additional Containerless Mode Commands

Several container mode commands work in the same way, or an analagous way, in containerless mode, including use of the -machine and -role options, as follows:

  • icm ssh, icm scp, icm session, icm sql

    The behavior of these commands is identical in container mode and containerless mode.

  • icm ps

    The columns included in icm ps output in containerless mode are shown in the following example:

    # icm ps -json
    Machine            IP Address     Instance   Kit             Status   Health
    -------            ----------     --------   ---             ------   ------
    Acme-DM-TEST-0001  54.67.2.117    IRIS       2019.4.0.792.0  running  ok
    Acme-AM-TEST-0002  54.153.96.236  IRIS       2019.4.0.792.0  running  ok
    Acme-AM-TEST-0003  54.103.9.388   IRIS       2019.4.0.792.0  running  ok
    
    Copy code to clipboard

    The Instance field provides the name of each instance (in a container provided by InterSystems this is always IRIS) and the Kit field the kit from which it was installed. Values for Status include running, down, and sign-on inhibited; values for Health include ok, warn, and alert.

    Note:

    When the icm ps command is used prior to the icm install command in a containerless mode deployment, the Status field displays the value not installed.

  • icm stop, icm start

    The icm stop and icm start commands execute the iris stop and iris start commands (see Controlling InterSystems IRIS Instances in the “Using Multiple Instances of InterSystems IRIS” chapter of the System Administration Guide) on all InterSystems IRIS instances or the specified instance(s).

  • icm upgrade

    In containerless mode, icm upgrade does the following:

    • Downloads the InterSystems IRIS kit specified by KitURL.

    • Stops the current InterSystems IRIS instance using iris stop.

    • Uninstalls the current InterSystems IRIS instance.

    • Installs the InterSystems IRIS kit specified by KitURL.

    • Starts the newly-installed InterSystems IRIS instance using iris start.

    The following shows output from the icm upgrade command in containerless mode:

    # icm ps
    Machine            IP Address     Instance   Kit             Status   Health
    -------            ----------     --------   ---             ------   ------
    Acme-DM-TEST-0001  54.67.2.117    IRIS       2019.4.0.792.0  running  ok
    Acme-AM-TEST-0002  54.153.96.236  IRIS       2019.4.0.792.0  running  ok
    Acme-AM-TEST-0003  54.103.9.388   IRIS       2019.4.0.792.0  running  ok
    
    # icm upgrade
    Downloading kit on Acme-DM-TEST-0001...
    Downloading kit on Acme-AM-TEST-0002...
    Downloading kit on Acme-AM-TEST-0003...
    ...downloaded kit on Acme-AM-TEST-0002
    ...downloaded kit on Acme-AM-TEST-0003
    ...downloaded kit on Acme-DM-TEST-0001
    Stopping InterSystems IRIS on Acme-DM-TEST-0001...
    Stopping InterSystems IRIS on Acme-AM-TEST-0003...
    Stopping InterSystems IRIS on Acme-AM-TEST-0002...
    ...stopped InterSystems IRIS on Acme-DM-TEST-0001
    ...stopped InterSystems IRIS on Acme-AM-TEST-0002
    ...stopped InterSystems IRIS on Acme-AM-TEST-0003
    Uninstalling InterSystems IRIS on Acme-AM-TEST-0003...
    Uninstalling InterSystems IRIS on Acme-DM-TEST-0001...
    Uninstalling InterSystems IRIS on Acme-AM-TEST-0002...
    ...uninstalled InterSystems IRIS on Acme-DM-TEST-0001
    ...uninstalled InterSystems IRIS on Acme-AM-TEST-0002
    ...uninstalled InterSystems IRIS on Acme-AM-TEST-0003
    Installing kit on Acme-AM-TEST-0002...
    Installing kit on Acme-DM-TEST-0001...
    Installing kit on Acme-AM-TEST-0003...
    ...installed kit on Acme-AM-TEST-0002
    ...installed kit on Acme-DM-TEST-0001
    ...installed kit on Acme-AM-TEST-0003
    Starting InterSystems IRIS on Acme-DM-TEST-0001...
    Starting InterSystems IRIS on Acme-AM-TEST-0002...
    Starting InterSystems IRIS on Acme-AM-TEST-0003...
    ...started InterSystems IRIS on Acme-AM-TEST-0002
    ...started InterSystems IRIS on Acme-AM-TEST-0003
    ...started InterSystems IRIS on Acme-DM-TEST-0001
    
    # icm ps
    Machine            IP Address     Instance   Kit             Status   Health
    -------            ----------     --------   ---             ------   ------
    Acme-DM-TEST-0001  54.67.2.117    IRIS       2019.4.1.417.0  running  ok
    Acme-AM-TEST-0002  54.153.96.236  IRIS       2019.4.1.417.0  running  ok
    Acme-AM-TEST-0003  54.103.9.388   IRIS       2019.4.1.417.0  running  ok
    
    Copy code to clipboard
Previous section   Next section