You can group the tasks defined in the deployment workflow file using the types described in this section.
The following table describes the workflow task structure:
| Parameter | Description | Example | 
|---|---|---|
| id | Name of the deployment task. | |
| version | Version of the workflow execution engine. | |
| type | A type of task that Fuel executes. You can specify the following types of tasks: | |
| stage | Divides a deployment workflow on phases. In the default release workflow Fuel has the following stages: 
 However, you can create any stages as required or do not use them at all. | id: deploy_end
type: stage
requires: [deploy_start]
 | 
| groups | Describes node roles. By default, Fuel executes all tasks simultaneously. Hovewer, the order of tasks execution can be defined in the cross-depends and cross-depended-by fields of tasks. 
 | - id: controller
  type: group
  role: [controller]
  requires: [primary-controller]
  required_for: [deploy_end]
 | 
| skipped | Fuel does not execute this task, but preserves all dependencies specified
in the tasks. For example, if you use a plugin that requires some to be
skipped, you can create a skippedtask in the plugin workflow file. | - id: netconfig
  type: skipped
  groups: [primary-controller, controller, cinder, compute, ceph-osd,
          zabbix-server, primary-mongo, mongo]
  required_for: [deploy_end]
  requires: [logging]
  parameters:
    puppet_manifest: /etc/puppet/modules/osnailyfacter/netconfig.pp
    puppet_modules: /etc/puppet/modules
    timeout: 3600
 | 
| puppet | Deploys Puppet manifests. | - id: netconfig
  type: puppet
  groups: [primary-controller, controller, cinder, compute, ceph-osd,
          zabbix-server, primary-mongo, mongo]
  required_for: [deploy_end]
  requires: [logging]
  parameters:
    puppet_manifest:
    /etc/puppet/modules/osnailyfacter/other_path/netconfig.pp
    puppet_modules: /etc/puppet/modules
    timeout: 3600
 | 
| shell | Executes shell scripts. | - id: enable_quorum
  type: shell
  role: [primary-controller]
  requires: [post_deployment_start]
  required_for: [post_deployment_end]
  parameters:
    cmd: ruby
    /etc/puppet/modules/osnailyfacter/modular/astute/enable_quorum.rb
    timeout: 180
 | 
| upload_file | Uploads values specified in datain theparameterssection. | - id: upload_data_to_file
  type: upload_file
  role: '*'
  requires: [pre_deployment_start]
  parameters:
    path: /etc/file_name
    data: 'arbitrary info'
 | 
| sync | Distributes files from the srcdirecory on the Fuel Master node
to thedstdirectory on the Fuel Slave nodes that match the
specified roles. | - id: rsync_core_puppet
  type: sync
  role: '*'
  required_for: [pre_deployment_end]
  requires: [upload_core_repos]
  parameters:
    src: rsync://<FUEL_MASTER_IP>:/puppet/
    dst: /etc/puppet
    timeout:
 | 
| copy_files | Reads data from srcand saves it in the file specified in thedstargument. Permissions can be specified for a group of files. | - id: copy_keys
  type: copy_files
  role: '*'
  required_for: [pre_deployment_end]
  requires: [generate_keys]
  parameters:
  files:
    src: /var/lib/fuel/keys/{CLUSTER_ID}/neutron/neutron.pub
    dst: /var/lib/astute/neutron/neutron.pub
  permissions: '0600'
  dir_permissions: '0700'
 | 
| role | Node roles on which the task is executed. To select all roles assigned to the node, you can use a wildcard ‘*’. | role: [primary-controller]
 | 
| requires | Requirements for a specific task or stage on the same node. | requires: [generate_keys]
 | 
| required_for | Specifies which tasks and stages depend on this task. | required_for: [pre_deployment_end]
 | 
| reexecute_on | Re-run the task after completion. | reexecute_on: [deploy_changes]
 | 
| cross-depended-by | Specifies which tasks and stages on other nodes are dependent by this
task. You can specify a value in a form of a regular expression.
For example, use  Warning The  | cross-depended-by:
  - name: neutron-keystone
 | 
| cross-depends | Reverse to cross-depended-by. You can specify the value in a form
of a regular expression. Do not use lists. | cross-depends:
  - name: neutron-keystone
    role: primary-controller
  - name: openstack-haproxy
 | 
| condition | Describes a condition required to execute this task. For more information, see: Run data-driven tasks. | condition: yaql_exp: {yaql expression}
parameters:
  data: yaql_exp: {yaql expression}
 | 
| parameters | Task execution parameters. Differ for each task. | parameters:
  files:
    - src: /var/lib/fuel/keys/{CLUSTER_ID}/neutron/neutron.pub
      dst: /var/lib/astute/neutron/neutron.pub
  permissions: '0600'
  dir_permissions: '0700'
 | 
 
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.