Skip to main content
System StatusContact Support
VersionOne Community

Client Tutorial - Deploy

Overview 

Common scenario demonstrating the use of the Continuum Command Line tools.

Conveniently, this scenario includes several of the more complicated commands requiring submission of parameters.

This scenario assumes .ctmclient.conf file has been set up properly.
[Click here](/docs/velocity/client/client.html) for information about setting up command line tools.

Running a Sequence

ctm-run-sequence

We have started with the ctm-run-sequence command as it is the most complex.

Running a Sequence on a Deployment can be done simply if there are no parameters, however this is seldom the case.  
If running a Sequence from the UI, a user is prompted for parameters.  
Running a Sequence in a scripted fashion requires a parameters document to be created and submitted with the command.

Following this section is a smaller section detailing how these same principles more simply apply to `ctm-run-action` and `ctm-run-task`.

First, a simple example of running a Sequence with no parameters:

ctm-run-sequence -dMyDeployment -sSequence01

This command will run Sequence01 on a Deployment named MyDeployment, without parameters.

To provide parameters, follow the steps below.

Step 1. Determine what parameters are required:

The `ctm-get-sequence-parameters` command will return a suitable template of all parameters acceptable to the desired sequence

ctm-get-sequence-parameters -dMyDeployment -sSequence01

To redirect the parameters to a file:

ctm-get-sequence-parameters -dMyDeployment -sSequence01 > /tmp/myparams

Step 2. Edit the parameters file

Now, edit and adjust the parameters file as needed, using vi or any suitable text editor.  (See below for a deeper dive into a Sequence Parameters template.)

Step 3. Pass the file to the command

Once the parameters template file has been adjusted satisfactorily, it can be passed into the ctm-run-sequence command.

ctm-run-sequence -dMyDeployment -sSequence01 -p/tmp/myparams

Sequence Parameters - Additional Details

A Sequence Parameters template will have three top-level sections: DeploymentParamsVals, SequenceParamsVals, and Services.  

DeploymentParamsVals

Not yet implemented.

SequenceParamsVals

Any name:value pairs defined here will be available in all Transition Tasks on the entire sequence.

Services

The Services section will contain a “map” of all the Steps in the Sequence, including which Services will be transitioned in each Step.  
At first glance this may seem a little overwhelming, but this is necessary, as the Service Map is how the Sequence is processed,
and most importantly how it knows what parameters to send to which Task.

A Transition is the section where individual Transition Task parameters will be defined, and values can be set.  For example, here is a simple one-step-one-transition Sequence parameter template.  The values safe to change are marked in bold.

USE CAUTION when editing the file, taking special care not to change any property key except “values” nodes.  
Errors introduced into this file could cause the Sequence to fail in mapping Parameters to the proper Transitions.

    {
        "Services": [
            {
                "Transitions": [
                    {
                        "Step": 1,
                        "Parameters": [
                            {
                                "values": [enter-app-username-here],
                                "name": "app_user"
                            },
                            {
                                "values": [enter-app-password-here],
                                "name": "app_user_pw"
                            }
                        ]
                    }
                ],
                "ServiceID": "f175defa-881b-11e2-9bb3-c8bcc89c1491"
            }
        ],
        "DeploymentParamsVals": [],
        "SequenceParamsVals": []
    }

As you can see in this example, a Task will run for one specific Service, and two parameter values are required.

For a fully automated scenario, eliminating human parsing of this parameters file - simply define Transition Tasks
with default parameter values that can be easily replaced using `sed/awk` or other scripting tools.  For example:

    {
        "values": [##APPUSERDEFAULT##],
        "name": "app_user"
    }

In this case, with a little smart design an automated script could a) retrieve the Sequence parameters template b) replace certain patterns with appropriate values and c) submit the Sequence.

Running an Action

ctm-run-action

Running an Action on a Deployment or Service is less complication than running a Sequence, primarily because an Action is simply one process instead of an organized workflow of processes.

Similar to running a Sequence, when running an Action a parameters document can be obtained.

Note the _optional_ `-v` argument.  If omitted the command will look for a Deployment Action.  This argument is required when accessing a Service Action.

ctm-get-action-parameters -dMyDeployment -aActionName > /tmp/actionparams

Or

ctm-get-action-parameters -dMyDeployment -vServiceName -aActionName > /tmp/actionparams

On a Deployment, Actions can be defined either:

  • to run on the entire Deployment

  • to run on a single Service and it's Instances

As with Sequences, this command will return a JSON template, but the format is simpler.  Edit the values as necessary, and save the file.

ctm-run-action -dMyDeployment -aActionName -p/tmp/actionparams

Or

ctm-run-action -dMyDeployment -vServiceName -aActionName -p/tmp/actionparams

Running a Task

ctm-run-task

Finally, running a Task is nearly identical to running an Action (since Actions are just pointers to Tasks!)  
However, you will need to know the Task Name (and Version) for these commands.

ctm-get-task-parameters -tTaskName > /tmp/taskparams

As with Sequences and Actions, this command will return a simple JSON template.  Edit the values as necessary, and save the file.

ctm-run-task -tTaskName -p/tmp/taskparams

All Commands

To see a list of all commands:

ctm-list-commands

To see specific arguments for any command, specify the `-H` option.

  • Was this article helpful?