1 heat_template_version: 2013-05-23
4 This is a Heat template to deploy a single Linux server running a WordPress.
13 wp_web_server_hostname:
14 description: WordPress Web Server Name
16 default: WordPress-Web
21 - allowed_pattern: "^[a-zA-Z][a-zA-Z0-9-]*$"
23 Must begin with a letter and contain only alphanumeric characters.
26 description: Server Image used for all servers.
28 default: Ubuntu 12.04 LTS (Precise Pangolin) (PVHVM)
31 - Ubuntu 12.04 LTS (Precise Pangolin) (PVHVM)
32 description: Must be a supported operating system.
35 description: Web Cloud Server flavor
37 default: 2 GB General Purpose v1
40 - 1 GB General Purpose v1
41 - 2 GB General Purpose v1
42 - 4 GB General Purpose v1
43 - 8 GB General Purpose v1
46 - 1GB Standard Instance
47 - 2GB Standard Instance
48 - 4GB Standard Instance
49 - 8GB Standard Instance
50 - 15GB Standard Instance
51 - 30GB Standard Instance
53 Must be a valid Rackspace Cloud Server flavor for the region you have
54 selected to deploy into.
58 description: Domain to be used with WordPress site
60 default: "example.com"
63 description: Version of WordPress to install
67 # Optional Apache settings (SSL certs)
69 # description: Private SSL key
73 # - allowed_pattern: "^(.){0,5000}$"
74 # description: "Key values must be under 5,000 characters"
77 # description: Public SSL key
81 # - allowed_pattern: "^(.){0,5000}$"
82 # description: "Certificate values must be under 5,000 characters"
84 # ssl_intermediate_certs:
85 # description: Intermediate SSL Certificates
89 # - allowed_pattern: "^(.){0,5000}$"
90 # description: "Intermediate values must be under 5,000 characters."
92 # Database and system user configuration
94 description: Prefix to use for
99 description: WordPress database name
104 description: IP/Host of the database server
109 description: IP/Host of the memcached server
114 description: "Username for system, database, and WordPress logins."
119 description: "Password to use for database connections."
124 description: "keypair name to register with Nova for the root SSH key"
135 description: Public key for lsync configuration
139 # Varnish Master backend
140 varnish_master_backend:
141 description: Master backend host for admin calls in Varnish
145 # Random strings for WP salting
158 # Chef configuration options
160 description: URL for the kitchen to use
162 default: https://github.com/rackspace-orchestration-templates/wordpress-multi
165 description: Version of chef client to use
169 # parent stack id for metadata
171 description: Stack id of the parent stack
178 type: "OS::Nova::Server"
180 name: { get_param: wp_web_server_hostname }
181 flavor: { get_param: wp_web_server_flavor }
182 image: { get_param: image }
183 key_name: { get_param: ssh_keypair_name }
185 user_data_format: RAW
186 user_data: { get_param: agent_config }
188 rax-heat: { get_param: parent_stack_id }
191 type: Rackspace::CloudMonitoring::Check
193 entity: { get_resource: wp_web_server }
195 label: node_cpu_check
198 rax-heat: { get_param: "OS::stack_id" }
199 stack-name: { get_param: "OS::stack_name" }
204 type: Rackspace::CloudMonitoring::Check
206 entity: { get_resource: wp_web_server }
208 label: node_mem_check
211 rax-heat: { get_param: "OS::stack_id" }
212 stack-name: { get_param: "OS::stack_name" }
216 node_filesystem_check:
217 type: Rackspace::CloudMonitoring::Check
219 entity: { get_resource: wp_web_server }
220 type: agent.filesystem
225 rax-heat: { get_param: "OS::stack_id" }
226 stack-name: { get_param: "OS::stack_name" }
231 type: "OS::Heat::ChefSolo"
232 depends_on: wp_web_server
235 private_key: { get_param: ssh_private_key }
236 host: { get_attr: [wp_web_server, accessIPv4] }
237 kitchen: { get_param: kitchen }
238 chef_version: { get_param: chef_version }
243 serversignature: "Off"
249 version: { get_param: version }
250 server_aliases: [{ get_param: domain }]
253 template: "/var/www/vhosts/%domain%"
255 "%domain%": { get_param: domain }
257 name: { get_param: database_name }
258 user: { get_param: username }
259 pass: { get_param: database_password }
260 host: { get_param: database_host }
262 auth: { get_param: wp_auth }
263 logged_in: { get_param: wp_logged_in }
264 nonce_key: { get_param: wp_nonce }
265 secure_auth_key: { get_param: wp_secure_auth }
268 domain: { get_param: domain }
269 # ssl_private_key: { get_param: ssl_private_key }
270 # ssl_certificate: { get_param: ssl_certificate }
271 # ssl_intermediate_certs: { get_param: ssl_intermediate_certs }
274 pub: { get_param: lsync_pub }
276 server: { get_param: memcached_host }
280 master_backend: { get_param: varnish_master_backend }
282 admin_pass: { get_param: database_password }
284 name: { get_param: username }
285 group: { get_param: username }
286 run_list: ["recipe[apt]",
287 "recipe[build-essential]",
288 "recipe[rax-wordpress::apache-prep]",
289 "recipe[rax-wordpress::x509]",
291 "recipe[rax-install-packages]",
293 "recipe[rax-wordpress::user]",
294 "recipe[rax-wordpress::memcache]",
295 "recipe[varnish::repo]",
297 "recipe[rax-wordpress::apache]",
298 "recipe[rax-wordpress::varnish]",
299 "recipe[rax-wordpress::firewall]",
300 "recipe[rax-wordpress::lsyncd-client]"]
304 value: { get_attr: [wp_web_server, accessIPv4] }
307 value: { get_attr: [wp_web_server, networks, private, 0] }