| heat_template_version: 2014-10-16 |
| parameters: |
| key_name: |
| type: string |
| flavor: |
| type: string |
| image: |
| type: string |
| network: |
| type: string |
| signal_transport: |
| type: string |
| default: CFN_SIGNAL |
| software_config_transport: |
| type: string |
| default: POLL_SERVER_CFN |
| dep1_foo: |
| default: fooooo |
| type: string |
| dep1_bar: |
| default: baaaaa |
| type: string |
| dep2a_bar: |
| type: string |
| default: barrr |
| dep3_foo: |
| default: fo |
| type: string |
| dep3_bar: |
| default: ba |
| type: string |
| |
| resources: |
| |
| the_sg: |
| type: OS::Neutron::SecurityGroup |
| properties: |
| name: the_sg |
| description: Ping and SSH |
| rules: |
| - protocol: icmp |
| - protocol: tcp |
| port_range_min: 22 |
| port_range_max: 22 |
| |
| cfg1: |
| type: OS::Heat::SoftwareConfig |
| properties: |
| group: script |
| inputs: |
| - name: foo |
| - name: bar |
| outputs: |
| - name: result |
| config: {get_file: cfg1.sh} |
| |
| cfg2a: |
| type: OS::Heat::StructuredConfig |
| properties: |
| group: cfn-init |
| inputs: |
| - name: bar |
| config: |
| config: |
| files: |
| /tmp/cfn-init-foo: |
| content: |
| get_input: bar |
| mode: '000644' |
| |
| cfg2b: |
| type: OS::Heat::SoftwareConfig |
| properties: |
| group: script |
| outputs: |
| - name: result |
| config: | |
| #!/bin/sh |
| echo -n "The file /tmp/cfn-init-foo contains `cat /tmp/cfn-init-foo` for server $deploy_server_id during $deploy_action" > $heat_outputs_path.result |
| |
| cfg3: |
| type: OS::Heat::SoftwareConfig |
| properties: |
| group: puppet |
| inputs: |
| - name: foo |
| - name: bar |
| outputs: |
| - name: result |
| config: {get_file: cfg3.pp} |
| |
| dep1: |
| type: OS::Heat::SoftwareDeployment |
| properties: |
| config: |
| get_resource: cfg1 |
| server: |
| get_resource: server |
| input_values: |
| foo: {get_param: dep1_foo} |
| bar: {get_param: dep1_bar} |
| signal_transport: {get_param: signal_transport} |
| |
| dep2a: |
| type: OS::Heat::StructuredDeployment |
| properties: |
| name: 10_dep2a |
| signal_transport: NO_SIGNAL |
| config: |
| get_resource: cfg2a |
| server: |
| get_resource: server |
| input_values: |
| bar: {get_param: dep2a_bar} |
| |
| dep2b: |
| type: OS::Heat::SoftwareDeployment |
| properties: |
| name: 20_dep2b |
| config: |
| get_resource: cfg2b |
| server: |
| get_resource: server |
| signal_transport: {get_param: signal_transport} |
| |
| dep3: |
| type: OS::Heat::SoftwareDeployment |
| properties: |
| config: |
| get_resource: cfg3 |
| server: |
| get_resource: server |
| input_values: |
| foo: {get_param: dep3_foo} |
| bar: {get_param: dep3_bar} |
| signal_transport: {get_param: signal_transport} |
| |
| cfg_user_data: |
| type: Heat::InstallConfigAgent |
| |
| server: |
| type: OS::Nova::Server |
| properties: |
| image: {get_param: image} |
| flavor: {get_param: flavor} |
| key_name: {get_param: key_name} |
| security_groups: |
| - {get_resource: the_sg} |
| networks: |
| - network: {get_param: network} |
| user_data_format: SOFTWARE_CONFIG |
| software_config_transport: {get_param: software_config_transport} |
| user_data: {get_attr: [cfg_user_data, config]} |
| |
| outputs: |
| res1: |
| value: |
| result: {get_attr: [dep1, result]} |
| stdout: {get_attr: [dep1, deploy_stdout]} |
| stderr: {get_attr: [dep1, deploy_stderr]} |
| status_code: {get_attr: [dep1, deploy_status_code]} |
| res2: |
| value: |
| result: {get_attr: [dep2b, result]} |
| stdout: {get_attr: [dep2b, deploy_stdout]} |
| stderr: {get_attr: [dep2b, deploy_stderr]} |
| status_code: {get_attr: [dep2b, deploy_status_code]} |
| res3: |
| value: |
| result: {get_attr: [dep3, result]} |
| stdout: {get_attr: [dep3, deploy_stdout]} |
| stderr: {get_attr: [dep3, deploy_stderr]} |
| status_code: {get_attr: [dep3, deploy_status_code]} |