The install-component application process step starts child component processes that install a single component. This step is only valid in an application process.


install-component step "foo" is
    -- name of the component to deploy; required
    component "my-component"

    -- name of the component process to run for each component; required
    process "deploy-component-process-property"

    -- select versions for deployment without this inventory status; required
    select-versions-without-inventory-status "Active"

    -- select resources to deploy to by resource tag; optional
    -- before, the tag must be specified by internal database ID
    select-resources-by-tag "my-tag"

    -- don't start further children after a failure; optional
    -- default is false
    fail-fast false

    -- suppress warnings generated by children; optional
    -- default is false
    ignore-child-warnings false

    -- maximum number of concurrent processes; optional
    -- default is unlimited
    max-concurrent-processes unlimited

    -- javascript precondition script that must evaluate to true for the step to execute; optional

    -- set a component process property value; optional, repeatable
    property "component-process-property-1" = "cpp1-value"
    property "component-process-property-2" = "cpp1-value"

on success
    start "bar"


Table 1. Install Component properties
Field Description
Name A name for the step. Other process steps can refer to this step by this name.
Component Component that is used by the step; a step can affect a single component. All components that are associated with the application are available. To install another component, add another install step to the process.
Use Versions Without Status Restricts the components that can be used by the step. Components with the selected status are ignored. Available statuses: Active means ignore components that are currently deployed.
Component Process The component process to run.
Limit to Tag User-defined roles can be used in processes; see Adding tags to objects.
Maximum number of concurrent processes The maximum number of concurrent processes to run. This setting limits the number of processes that run simultaneously to deploy the component. For example, if you set the maximum number of concurrent processes to 2, only two instances of the component are installed at a time, even if many instances of the component are mapped to agents. To run an unlimited number of concurrent processes, specify -1. To limit the number of processes to run at once, as in rolling deployments, specify an integer.

The server attempts to resolve the value to an integer. If the value does not resolve to an integer, then the -1 value is used by default. You can use a property in this field, as long as the property resolves to an integer.

Note: The maximum number of component processes that can run concurrently is limited by the hardware that hosts the agent.
Fail Fast If this check box is selected, the step does not start more processes after one process fails.
Precondition A JavaScript 1.7 script that defines a condition that must exist before the step can run. The condition must resolve to true or false. In the script, do not use the ${p:component.myProperty} notation. For example, to check the value of a component property in a component process, use properties.get("myProperty") == "myValue". See Property contexts for information about property access.


start is
    start A
    start B

install-component step A is
    component "component-a"
    process "process-a"
    select-versions-without-inventory-status "status-a"
    select-resources-by-tag "tag-a"
    fail-fast true
    ignore-child-warnings true
    max-concurrent-processes unlimited
    precondition-script "script-a"
    property "prop-a1" = "prop-a1-value"
    property "prop-a2" = "prop-a2-value"
    property "prop-a3" = "prop-a3-value"
on success

install-component step B is
    component "component-b"
    process "process-b"
    select-versions-without-inventory-status "status-b"
    fail-fast false
    ignore-child-warnings false
    max-concurrent-processes 10
on success