roles: role-name: name: "" description: "" conflicts: - another_role update_required: - another_role update_once: - another_role has_primary: true limits: min: int OR "<>" overrides: - condition: "<>" max: 1 - condition: "<>" reccomended: 3 message: "" restrictions: - condition: "<>" message: "" action: "hide" fault_tolerance: "2%" task_groups: #Stages - id: stage_name type: stage requires: [another_stage] #Groups - id: task_group_name type: group role: [role_name] requires: [stage_name_requirement] required_for: [stage_name_complete_before] parameters: strategy: type: one_by_one #OR type: parallel amount: 6 #Optional concurency limit tasks: - id: task_name_puppet type: puppet role: '*' #optional role to filter task on, used when in a pre or post deployment stage groups: [task_group_name] required_for: [task_name, stage_name] requires: [task_name, task_group_name, stage_name] condition: "<>" parameters: puppet_manifest: path_to_manifests puppet_modules: path_to_modules timeout: 3600 cwd: / test_pre: cmd: bash style exec of command to run test_post: cmd: bash style exec of command to run #all have [roles|groups] and requires /// required_for - id: task_name_shell type: shell parameters: cmd: bash style exec timeout: 180 retries: 10 interval: 2 - id: task_name_upload_file type: upload_file role: '*' parameters: path: /etc/hiera/nodes.yaml - id: task_name_sync type: sync role: '*' parameters: src: rsync://{MASTER_IP}:/puppet/version dst: /etc/puppet timeout: 180 - id: task_name_copy_files type: copy_files role: '*' parameters: files: - src: source_file/{CLUSTER_ID}/ dst: dest/localtion permissions: '0600' dir_permissions: '0700'