Fuel uses the deployment_tasks.yaml
file to define deployment tasks
and deployment tasks dependencies.
Example:
- id: myplugin-keystonedb
groups: [primary-controller]
required_for: [keystone]
requires: [database]
type: puppet
parameters:
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/keystone/db.pp
puppet_modules: /etc/puppet/modules
timeout: 1800
Fields:
role
– Describes a role of a node where tasks execute. You can only use
role
with pre/post deployment tasks.
groups
– Describes a group of nodes with the specified role where tasks
will execute. You can only use groups
with the main deployment tasks.
The task must have either a role
or group
field, but not both.
requires
– Specifies the list of tasks that the current task needs.
You can obtain the list of tasks using CLI:
fuel graph --env 1 --download
required_for
– Specifies the list of tasks dependent on the current one.
timeout
– Specifies the execution timeout in seconds. Once specified,
the deployment will fail if the timeout expires. By default, the timeout is
set to 300 seconds.
type
– Determines the task’s type. The type must be shell
,
puppet
, reboot`
, or group
:
type: shell
– The task runs a shell script defined in the parameter
cmd
.
Example:
# This tasks will be applied on controller nodes, # here you can also specify several roles, for example # ['cinder', 'compute'] will be applied only on # cinder and compute nodes - id: task-shell-deploy role: ['controller'] type: shell parameters: cmd: bash deploy.sh timeout: 42 - id: task-shell-deploy role: ['cinder','compute''] type: shell parameters: cmd: bash deploy.sh timeout: 42 # Task is applied for all roles - id: task-shell-pluginlog role: '*' type: shell parameters: cmd: echo all > /tmp/plugin.all timeout: 42
type: puppet
– The task lets you apply your own Puppet manifests
on OpenStack nodes.
Parameters:
- puppet_manifest - manifests directory path (relative to deployment_scripts).
- puppet_modules - modules directory path (relative to deployment_scripts).
Example:
# Deployment will be applied on controllers only - role: ['controller'] type: puppet parameters: puppet_manifest: puppet/manifests/site.pp puppet_modules: puppet/modules timeout: 360
type: reboot
– The task lets you reboot nodes with the specified
roles after the timeout.
Example:
- role: '*' type: reboot parameters: timeout: 300
type: group
– This is a meta-task. The task must contain the
tasks
field with the list of tasks to be executed on the specified
nodes.
- id: standalone-keystone type: group role: [standalone-keystone] requires: [deploy_start, primary-standalone-keystone] required_for: [deploy_end] tasks: [fuel_pkgs, hiera, globals, tools, logging, netconfig, hosts, firewall, deploy_start, cluster, keystone-vip, cluster-haproxy, memcached, openstack-haproxy-stats, task-keystone] parameters: strategy: type: parallel
When you set up a group of tasks, you can also specify how these tasks execute: in “parallel” or “one-by-one”.
strategy: type
:Once you choose “parallel”, you can specify the maximum number of tasks
that run in parallel using the amount
parameter.
- id: controller
type: group
role: [controller]
requires: [primary-controller]
required_for: [deploy_end]
parameters:
strategy:
type: parallel
amount: 6
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.