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 skipped task 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 data in the parameters section. |
- 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 src direcory on the Fuel Master node
to the dst directory 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 src and saves it in the file specified in the
dst argument. 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.