Create an SSH activity
Create an activity that extracts data from a target host that uses the SSH network protocol.
Before you begin
Role required: activity_creator or workflow_admin
About this task
For instructions on using the activity template process flow, see create custom activities.
Procedure
Create a custom activity.
This action creates a custom activity using a template.
After setting up general properties and creating input variables, configure the SSH Execution Command.
| Map the input variables | Use the variables you created to configure the command that Orchestration executes. |
| Target host | Host name or IP address of the target server for this activity. |
| Command | Command this activity runs on the target host. You can invoke a MID Server script from this field using any script type that the SSH command line supports. For more information, see Advanced SSH script options below the table. |
| Directory | Directory on the target host where the command is run. |
| Credential tag | The Orchestration credential tag to use when running the command. |
| Required MID Server capabilities | MID Server with the appropriate capabilities for connecting to the host. By default, the system selects a MID Server with SSH capabilities. |
| Long running | If checked, disables the SSH connection timeout for commands that might take longer to run than the default 60 seconds. Orchestration periodically checks the running process to determine its status until it is finished. |
| Must Sudo | If checked, enables the use of sudo to run commands. |
**Note:** You can map parameter values in a test payload to variables in the **Outputs** tab automatically. See [automap output variables](automap-output-variable-inputs.md).
Advanced SSH script options
To run a MID Server script on the target host, specify the script type and pass the name of the script into the ${syncFile()} parameter. The system uses this parameter to locate the named script in the MID Server Script File [ecc_agent_script_file] table and run it on the target host. For example, a bash script can be expressed as:
bash ${syncFile("<MID script name>")} argument1 argument2 argument3
A base script (main_script.bash) can reference another script (my_include.bash) as well as a separate file (.my_profile) located on the target host. Both scripts and the file referenced must be synced to the MID Server, using the ${syncFile()} parameter, to execute properly.
source ${syncFile(".my_profile")}
cp ${syncFile("my_include.bash")} /usr/ssmith/my_include.bash
bash ${syncFile("main_script.bash")} one two three four five six
rm /usr/ssmith/my_include.bash
A Python example with inline comments might look like this:
set $LIB_DIR=/usr/bin;.
# Sync a file that is referenced inside myF5CreateLBPool.py
cp ${syncFile("specialFunctions.py")} ~/specialFunctions.py
# set up environment variables
source ${syncFile(".python_profile")}
# call script that sets up dependencies on the box from remote package repos
python ${syncFile("setupPythonDependencies.py")} pycontrol
# call a script that requires functions from the package as well as a function from myIncludedFile
python ${syncFile("myF5CreateLBPool.py")} snow_pool myActualValue
# user is responsible for their own cleanup
rm ~/specialFunctions.py
What to do next
- Use auto-mapping to generate outputs and parsing rules
- If you do not use auto-mapping, you can manually create output variables and create parsing rules
Parent Topic:Orchestration custom activity templates
SSH template execution parameters
Use execution parameters to create the input process script in the Pre Processing form of the activity designer.
For descriptions of the command fields, see Configure the SSH execution command.
Note: You must use the executionParam. prefix with all variables in this table.
| Name | Variable | Type | Usage |
|---|---|---|---|
| Source | source | String | Intended target or host. |
| Command | command | String | Comment to run on the host. |
| Directory | directory | String | Directory on the host in which to run the command. |
| Credential tag | credential\_tag | String | Orchestration credential tag to use when running the command. |
| MidCapabilities | midCapabilities | String \(comma separated\) | List of required MID Server capabilities. |
| ValueCapabilities | valueCapabilities | Array of hashmap | Capability values used to select the MID Server. For more information, see MID Server capabilities. If there are additional capabilities that are assigned by value, use this example to customize the MID Server selection: |
| Long running | long\_running | Boolean | Indicates whether or not the command is long running. A value of true indicates that the command is long running. |
| Must sudo | must\_sudo | Boolean | Indicates whether or not this activity must use sudo to run root commands. A value of true indicates that sudo SSH credentials must be used. |
SSH post-processing parameters and payload parsing
Use these parameters to create a post-processing script, payload parsing, and tagging.
| Name | Variable | Type | Usage |
|---|---|---|---|
| Output | output | String | Contains the output returned from the SSH command. |
| EccSysID | eccSysID | String | Contains the reference ID associated with the ECC Queue input message returned by the activity. |
| ErrorMessages | errorMessages | String | Contains the error messages retrieved from the SSH command. This value is null if there are no error messages. |
| Tags | tags | Hashmap of tag values returned from the SSH command | Contains the tags used to extract output using the SSH commands. The tag output is delimited by double percentage signs, as in |
Configure the SSH execution command
Use the input variables you created to configure the command that Orchestration executes on the host target.
Before you begin
Create the input variables you need in the Inputs form before you advance to the Execution Command stage.
Role required: activity_creator, admin
Note: You can test the SSH connection between the MID Server and the target without having to run the acvitity in a workflow context. For details, see test template outputs.
Procedure
Drag variables from the list of inputs and drop them into command fields.
The system formats the variable in the proper syntax for the command.
SSH execution command
- Complete the fields shown in the table.
| Field | Description |
|---|---|
| Input | Input variable builder. Create input variables to map to available fields. |
| Target host | Host name or IP address of the target server for this activity. |
| Command | Command this activity runs on the target host. You can invoke a MID Server script from this field using any script type that is supported by the SSH command line. For more information, see Advanced SSH script options below the table. |
| Directory | Directory on the target host where the command is run. |
| Credential tag | The Credential aliases for Orchestration activities to use when running the command. |
| Select MID Server by capabilities | MID Server with the appropriate capabilities for connecting to the host. By default, the system selects a MID Server with SSH capabilities |
| Long running | Check box to disable the SSH connection timeout for commands that might take longer to run than the default 60 seconds. Orchestration periodically checks the running process to determine its status until it is finished. |
| Must Sudo | Check box to allow the use of SSH credentials to run commands. |
Click Save.
Click Continue to advance to the Outputs stage.