New file |
| | |
| | | heat_template_version: 2016-10-14 |
| | | |
| | | description: Three-Tier-App |
| | | |
| | | parameters: |
| | | |
| | | guid: |
| | | type: string |
| | | |
| | | provider_network: |
| | | type: string |
| | | default: external |
| | | |
| | | keypair_name: |
| | | type: string |
| | | default: student_key |
| | | |
| | | rhel_image: |
| | | type: string |
| | | default: rhel-server-7.7-password |
| | | |
| | | resources: |
| | | network_private: |
| | | type: OS::Neutron::Net |
| | | properties: |
| | | name: |
| | | list_join: [ '-', [ { get_param: guid }, 'private' ]] |
| | | shared: false |
| | | |
| | | subnet_private: |
| | | type: OS::Neutron::Subnet |
| | | properties: |
| | | name: |
| | | list_join: [ '-', [ { get_param: guid }, 'private' ]] |
| | | network_id: { get_resource: network_private } |
| | | cidr: 192.168.2.0/24 |
| | | dns_nameservers: [ "8.8.8.8" ] |
| | | gateway_ip: 192.168.2.1 |
| | | allocation_pools: |
| | | - start: 192.168.2.10 |
| | | end: 192.168.2.99 |
| | | |
| | | router: |
| | | type: OS::Neutron::Router |
| | | properties: |
| | | name: |
| | | list_join: [ '-', [ { get_param: guid }, 'router' ]] |
| | | external_gateway_info: |
| | | network: { get_param: provider_network } |
| | | |
| | | router_private_interface: |
| | | type: OS::Neutron::RouterInterface |
| | | properties: |
| | | router: { get_resource: router } |
| | | subnet: { get_resource: subnet_private } |
| | | |
| | | security_group: |
| | | type: OS::Neutron::SecurityGroup |
| | | properties: |
| | | name: |
| | | list_join: [ '-', [ { get_param: guid }, 'sg' ]] |
| | | description: Ping and SSH Access |
| | | rules: |
| | | - protocol: icmp |
| | | - protocol: tcp |
| | | port_range_min: 22 |
| | | port_range_max: 22 |
| | | - protocol: tcp |
| | | port_range_min: 80 |
| | | port_range_max: 80 |
| | | - protocol: tcp |
| | | port_range_min: 443 |
| | | port_range_max: 443 |
| | | |
| | | bastion: |
| | | type: OS::Heat::ResourceGroup |
| | | depends_on: router |
| | | properties: |
| | | count: 3 |
| | | resource_def: |
| | | type: OS::Nova::Server |
| | | properties: |
| | | name: bastion_%index% |
| | | image: {get_param: rhel_image } |
| | | key_name: student_key |
| | | flavor: m1.small |
| | | networks: |
| | | - network: { get_resource: network_private } |
| | | |
| | | frontend: |
| | | type: OS::Heat::ResourceGroup |
| | | properties: |
| | | count: 1 |
| | | resource_def: |
| | | type: OS::Nova::Server |
| | | properties: |
| | | name: frontend_%index% |
| | | image: { get_param: rhel_image } |
| | | key_name: student_key |
| | | flavor: m1.small |
| | | networks: |
| | | - network: { get_resource: network_private } |
| | | |
| | | app: |
| | | type: OS::Heat::ResourceGroup |
| | | properties: |
| | | count: 2 |
| | | resource_def: |
| | | type: OS::Nova::Server |
| | | properties: |
| | | name: app_%index% |
| | | image: { get_param: rhel_image } |
| | | key_name: student_key |
| | | flavor: m1.small |
| | | networks: |
| | | - network: { get_resource: network_private } |
| | | |
| | | appdb: |
| | | type: OS::Heat::ResourceGroup |
| | | properties: |
| | | count: 2 |
| | | resource_def: |
| | | type: OS::Nova::Server |
| | | properties: |
| | | name: appdb_%index% |
| | | image: { get_param: rhel_image } |
| | | key_name: student_key |
| | | flavor: m1.small |
| | | networks: |
| | | - network: { get_resource: network_private } |
| | | |
| | | support: |
| | | type: OS::Heat::ResourceGroup |
| | | properties: |
| | | count: 1 |
| | | resource_def: |
| | | type: OS::Nova::Server |
| | | properties: |
| | | name: support_%index% |
| | | image: { get_param: rhel_image } |
| | | key_name: student_key |
| | | flavor: m1.small |
| | | networks: |
| | | - network: { get_resource: network_private } |