Skip to content

Instantly share code, notes, and snippets.

@yankcrime
Created May 8, 2015 09:41
Show Gist options
  • Save yankcrime/75baca8a9154a7bc3c4d to your computer and use it in GitHub Desktop.
Save yankcrime/75baca8a9154a7bc3c4d to your computer and use it in GitHub Desktop.
heat_template_version: 2014-10-16
description: Demo template to deploy a pair of webservers and a loadbalancer
parameters:
key_name:
type: string
description: Name of SSH keypair to be used for compute instance
flavor:
type: string
default: dc1.1x1.20
constraints:
- allowed_values:
- dc1.1x1.20
- dc1.1x2.20
description: Must be a valid DataCentred Compute Cloud flavour
image:
type: string
default: 6c3047c6-17b1-4aaf-a657-9229bb481e50
description: Image ID
networks:
type: string
description: Network IDs for which the instances should have an interface attached
default: 6d4e94ab-e397-4d10-866e-94e7d3b6efb9
subnet:
type: string
description: ID for the subnet in which we want to create our loadbalancer
default: 31d38e20-05c1-4b5a-b510-49b7bc80edbf
user_data:
type: string
default: |
#cloud-config
packages:
- nginx
name:
type: string
description: Name of instances
default: webserver
resources:
webserver0:
type: OS::Nova::Server
properties:
key_name: { get_param: key_name }
flavor: { get_param: flavor }
image: { get_param: image }
networks: [{ network: { get_param: networks } }]
user_data: { get_param: user_data }
user_data_format: RAW
webserver1:
type: OS::Nova::Server
properties:
key_name: { get_param: key_name }
flavor: { get_param: flavor }
image: { get_param: image }
networks: [{ network: { get_param: networks } }]
user_data: { get_param: user_data }
user_data_format: RAW
lb_pool:
type: OS::Neutron::Pool
properties:
protocol: HTTP
subnet_id: { get_param: subnet }
lb_method: ROUND_ROBIN
vip:
protocol_port: 80
lb_members:
type: OS::Neutron::LoadBalancer
properties:
pool_id: { get_resource: lb_pool }
members: [ { get_resource: webserver0 }, { get_resource: webserver1 } ]
protocol_port: 80
outputs:
vip_ip:
description: IP of VIP
value: { get_attr: [ lb_pool, vip, address ] }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment