Last active
August 29, 2015 14:09
-
-
Save fghaas/ed02cee402fa2d77a6fc to your computer and use it in GitHub Desktop.
Heat stack for deploying two new servers in a new network
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
heat_template_version: 2013-05-23 | |
description: > | |
HOT template to create a new neutron network plus a router to the public | |
network, and for deploying two servers into the new network. The template also | |
assigns floating IP addresses to each server so they are routable from the | |
public network. | |
parameters: | |
key_name: | |
type: string | |
description: Name of keypair to assign to servers | |
default: 'default' | |
image: | |
type: string | |
description: Name of image to use for servers | |
default: 'cirros 0.3.3 x86_64' | |
flavor: | |
type: string | |
description: Flavor to use for servers | |
default: 'm1.nano' | |
public_net: | |
type: string | |
description: > | |
ID or name of public network for which floating IP addresses will be allocated | |
default: 'ext-net' | |
private_net_name: | |
type: string | |
description: Name of private network to be created | |
default: 'stack-net' | |
private_net_cidr: | |
type: string | |
description: Private network address (CIDR notation) | |
default: '10.0.3.0/24' | |
private_net_gateway: | |
type: string | |
description: Private network gateway address | |
default: '10.0.3.1' | |
private_net_pool_start: | |
type: string | |
description: Start of private network IP address allocation pool | |
default: '10.0.3.100' | |
private_net_pool_end: | |
type: string | |
description: End of private network IP address allocation pool | |
default: '10.0.3.199' | |
resources: | |
private_net: | |
type: OS::Neutron::Net | |
properties: | |
name: { get_param: private_net_name } | |
private_subnet: | |
type: OS::Neutron::Subnet | |
properties: | |
network_id: { get_resource: private_net } | |
cidr: { get_param: private_net_cidr } | |
gateway_ip: { get_param: private_net_gateway } | |
allocation_pools: | |
- start: { get_param: private_net_pool_start } | |
end: { get_param: private_net_pool_end } | |
router: | |
type: OS::Neutron::Router | |
properties: | |
external_gateway_info: | |
network: { get_param: public_net } | |
router_interface: | |
type: OS::Neutron::RouterInterface | |
properties: | |
router_id: { get_resource: router } | |
subnet_id: { get_resource: private_subnet } | |
server1: | |
type: OS::Nova::Server | |
properties: | |
name: Server1 | |
image: { get_param: image } | |
flavor: { get_param: flavor } | |
key_name: { get_param: key_name } | |
networks: | |
- port: { get_resource: server1_port } | |
server1_port: | |
type: OS::Neutron::Port | |
properties: | |
network_id: { get_resource: private_net } | |
fixed_ips: | |
- subnet_id: { get_resource: private_subnet } | |
server1_floating_ip: | |
type: OS::Neutron::FloatingIP | |
properties: | |
floating_network: { get_param: public_net } | |
port_id: { get_resource: server1_port } | |
server2: | |
type: OS::Nova::Server | |
properties: | |
name: Server2 | |
image: { get_param: image } | |
flavor: { get_param: flavor } | |
key_name: { get_param: key_name } | |
networks: | |
- port: { get_resource: server2_port } | |
server2_port: | |
type: OS::Neutron::Port | |
properties: | |
network_id: { get_resource: private_net } | |
fixed_ips: | |
- subnet_id: { get_resource: private_subnet } | |
server2_floating_ip: | |
type: OS::Neutron::FloatingIP | |
properties: | |
floating_network: { get_param: public_net } | |
port_id: { get_resource: server2_port } | |
outputs: | |
server1_private_ip: | |
description: IP address of server1 in private network | |
value: { get_attr: [ server1, first_address ] } | |
server1_public_ip: | |
description: Floating IP address of server1 in public network | |
value: { get_attr: [ server1_floating_ip, floating_ip_address ] } | |
server2_private_ip: | |
description: IP address of server2 in private network | |
value: { get_attr: [ server2, first_address ] } | |
server2_public_ip: | |
description: Floating IP address of server2 in public network | |
value: { get_attr: [ server2_floating_ip, floating_ip_address ] } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment