1 heat_template_version: 2013-05-23
4 HOT template to create a new neutron network plus a router to the public
5 network, and for deploying nine servers into the new network. The template also
6 assigns floating IP addresses to rubbos_control server so it is routable from the
11 description: Name of keypair to assign to servers
12 default: bottlenecks_rubbos_keypair
15 description: Name of image to use for servers
16 default: bottlenecks-trusty-server
19 description: Flavor to use for servers
20 default: bottlenecks_rubbos_flavor
24 ID or name of public network for which floating IP addresses will be allocated
28 description: Name of private network to be created
29 default: bottlenecks-private
32 description: Private network address (CIDR notation)
33 default: "10.0.10.0/24"
36 description: Private network gateway address
38 private_net_pool_start:
40 description: Start of private network IP address allocation pool
44 description: End of private network IP address allocation pool
45 default: "10.0.10.199"
48 description: User data for the server with master role
52 description: User data for the server with agent role
57 type: OS::Neutron::Net
59 name: { get_param: private_net_name }
62 type: OS::Neutron::Subnet
64 network_id: { get_resource: private_net }
65 cidr: { get_param: private_net_cidr }
66 gateway_ip: { get_param: private_net_gateway }
68 - start: { get_param: private_net_pool_start }
69 end: { get_param: private_net_pool_end }
72 type: OS::Neutron::Router
74 external_gateway_info:
75 network: { get_param: public_net }
78 type: OS::Neutron::RouterInterface
80 router_id: { get_resource: router }
81 subnet_id: { get_resource: private_subnet }
84 type: OS::Nova::Server
87 image: { get_param: image }
88 flavor: { get_param: flavor }
89 key_name: { get_param: key_name }
91 - port: { get_resource: rubbos_control_port }
93 user_data: { get_param: master_user_data }
97 type: OS::Neutron::Port
99 network_id: { get_resource: private_net }
101 - subnet_id: { get_resource: private_subnet }
102 security_groups: [{ get_resource: server_security_group }]
104 rubbos_control_floating_ip:
105 type: OS::Neutron::FloatingIP
107 floating_network: { get_param: public_net }
108 port_id: { get_resource: rubbos_control_port }
111 type: OS::Nova::Server
114 image: { get_param: image }
115 flavor: { get_param: flavor }
116 key_name: { get_param: key_name }
118 - port: { get_resource: rubbos_httpd_port }
120 user_data: { get_param: agent_user_data }
121 user_data_format: RAW
124 type: OS::Neutron::Port
126 network_id: { get_resource: private_net }
128 - subnet_id: { get_resource: private_subnet }
129 security_groups: [{ get_resource: server_security_group }]
132 type: OS::Nova::Server
135 image: { get_param: image }
136 flavor: { get_param: flavor }
137 key_name: { get_param: key_name }
139 - port: { get_resource: rubbos_mysql1_port }
141 user_data: { get_param: agent_user_data }
142 user_data_format: RAW
145 type: OS::Neutron::Port
147 network_id: { get_resource: private_net }
149 - subnet_id: { get_resource: private_subnet }
150 security_groups: [{ get_resource: server_security_group }]
153 type: OS::Nova::Server
156 image: { get_param: image }
157 flavor: { get_param: flavor }
158 key_name: { get_param: key_name }
160 - port: { get_resource: rubbos_tomcat1_port }
162 user_data: { get_param: agent_user_data }
163 user_data_format: RAW
166 type: OS::Neutron::Port
168 network_id: { get_resource: private_net }
170 - subnet_id: { get_resource: private_subnet }
171 security_groups: [{ get_resource: server_security_group }]
174 type: OS::Nova::Server
177 image: { get_param: image }
178 flavor: { get_param: flavor }
179 key_name: { get_param: key_name }
181 - port: { get_resource: rubbos_client1_port }
183 user_data: { get_param: agent_user_data }
184 user_data_format: RAW
187 type: OS::Neutron::Port
189 network_id: { get_resource: private_net }
191 - subnet_id: { get_resource: private_subnet }
192 security_groups: [{ get_resource: server_security_group }]
195 type: OS::Nova::Server
198 image: { get_param: image }
199 flavor: { get_param: flavor }
200 key_name: { get_param: key_name }
202 - port: { get_resource: rubbos_client2_port }
204 user_data: { get_param: agent_user_data }
205 user_data_format: RAW
208 type: OS::Neutron::Port
210 network_id: { get_resource: private_net }
212 - subnet_id: { get_resource: private_subnet }
213 security_groups: [{ get_resource: server_security_group }]
216 type: OS::Nova::Server
219 image: { get_param: image }
220 flavor: { get_param: flavor }
221 key_name: { get_param: key_name }
223 - port: { get_resource: rubbos_client3_port }
225 user_data: { get_param: agent_user_data }
226 user_data_format: RAW
229 type: OS::Neutron::Port
231 network_id: { get_resource: private_net }
233 - subnet_id: { get_resource: private_subnet }
234 security_groups: [{ get_resource: server_security_group }]
237 type: OS::Nova::Server
240 image: { get_param: image }
241 flavor: { get_param: flavor }
242 key_name: { get_param: key_name }
244 - port: { get_resource: rubbos_client4_port }
246 user_data: { get_param: agent_user_data }
247 user_data_format: RAW
250 type: OS::Neutron::Port
252 network_id: { get_resource: private_net }
254 - subnet_id: { get_resource: private_subnet }
255 security_groups: [{ get_resource: server_security_group }]
258 type: OS::Nova::Server
261 image: { get_param: image }
262 flavor: { get_param: flavor }
263 key_name: { get_param: key_name }
265 - port: { get_resource: rubbos_client5_port }
267 user_data: { get_param: agent_user_data }
268 user_data_format: RAW
271 type: OS::Neutron::Port
273 network_id: { get_resource: private_net }
275 - subnet_id: { get_resource: private_subnet }
276 security_groups: [{ get_resource: server_security_group }]
278 server_security_group:
279 type: OS::Neutron::SecurityGroup
281 description: Rubbos group for servers access.
282 name: rubbos-security-group
284 {remote_ip_prefix: 0.0.0.0/0,
287 port_range_max: 65535},
288 {remote_ip_prefix: 0.0.0.0/0,
291 port_range_max: 65535},
292 {remote_ip_prefix: 0.0.0.0/0,
296 rubbos_control_private_ip:
297 description: IP address of rubbos_control in private network
298 value: { get_attr: [ rubbos_control, first_address ] }
299 rubbos_control_public_ip:
300 description: Floating IP address of rubbos_control in public network
301 value: { get_attr: [ rubbos_control_floating_ip, floating_ip_address ] }
302 rubbos_httpd_private_ip:
303 description: IP address of rubbos_httpd in private network
304 value: { get_attr: [ rubbos_httpd, first_address ] }
305 rubbos_mysql1_private_ip:
306 description: IP address of rubbos_mysql1 in private network
307 value: { get_attr: [ rubbos_mysql1, first_address ] }
308 rubbos_tomcat1_private_ip:
309 description: IP address of rubbos_tomcat1 in private network
310 value: { get_attr: [ rubbos_tomcat1, first_address ] }
311 rubbos_client1_private_ip:
312 description: IP address of rubbos_client1 in private network
313 value: { get_attr: [ rubbos_client1, first_address ] }
314 rubbos_client2_private_ip:
315 description: IP address of rubbos_client2 in private network
316 value: { get_attr: [ rubbos_client2, first_address ] }
317 rubbos_client3_private_ip:
318 description: IP address of rubbos_client3 in private network
319 value: { get_attr: [ rubbos_client3, first_address ] }
320 rubbos_client4_private_ip:
321 description: IP address of rubbos_client4 in private network
322 value: { get_attr: [ rubbos_client4, first_address ] }
323 rubbos_client5_private_ip:
324 description: IP address of rubbos_client5 in private network
325 value: { get_attr: [ rubbos_client5, first_address ] }