update comment in the template
[heat-templates.git] / qa / wp-single-linux-cdb-dns.template
blobce0e559da7f9cd7a1047cfe75f3790ddac622e9c
1 heat_template_version: 2013-05-23
3 description: |
4   HEAT template for deploying a single-node wordpress deployment on Rackspace Cloud
5   using Cloud Server, and Cloud Database.
7 parameters:
9   web_node_flavor:
10     description: flavor id for the web server instances
11     type: string
12     default: 1GB Standard Instance
13     constraints:
14     - allowed_values:
15       - 512MB Standard Instance
16       - 1GB Standard Instance
17       - 2GB Standard Instance
18       - 4GB Standard Instance
19       - 8GB Standard Instance
20       - 15GB Standard Instance
21       - 30GB Standard Instance
22       description: must be a valid Rackspace Cloud Server flavor.
24   web_server_name:
25     description: base name for the web server instances
26     type: string
27     default: Wordpress Webserver
29   key_name:
30     description: nova keypair to use for ssh access to the web nodes
31     type: string
33   db_name:
34     default: wordpress
35     description: the name for the wordpress database
36     type: string
37     constraints:
38     - length:
39         min: 1
40         max: 64
41       description: must be between 1 and 64 characters
42     - allowed_pattern: "[a-zA-Z][a-zA-Z0-9]*"
43       description: must begin with a letter and contain only alphanumeric characters.
45   db_username:
46     default: admin
47     hidden: true
48     description: wordpress database admin account username
49     type: string
50     constraints:
51     - length:
52         min: 1
53         max: 16
54       description: must be between 1 and 16 characters
55     - allowed_pattern: "[a-zA-Z][a-zA-Z0-9]*"
56       description: must begin with a letter and contain only alphanumeric characters.
58   db_password:
59     default: admin
60     hidden: true
61     description: wordpress database admin account password
62     type: string
63     constraints:
64     - length:
65         min: 1
66         max: 41
67       description: must be between 1 and 14 characters
68     - allowed_pattern: "[a-zA-Z0-9]*"
69       description : must contain only alphanumeric characters.
71   db_flavor:
72     description: wordpress database instance size
73     type: string
74     default: 1GB Instance
75     constraints:
76     - allowed_values:
77       - 1GB Instance
78       - 2GB Instance
79       - 4GB Instance
80       - 8GB Instance
81       - 16GB Instance
82       description: must be a valid cloud database flavor
84   db_volume_size:
85     description : wordpress database volume size (in GB)
86     type: number
87     default: 30
88     constraints:
89     - range:
90         min: 1
91         max: 1024
92       description: must be between 1 and 1024 GB
94   db_instance_name:
95     description: the database instance name
96     type: string
97     default: WP_Cloud_DB
99   domain_name:    
100     description: valid domain name
101     type: string
102     default: example.com
103     
104   email_address:
105     description: domain owner email addresses
106     type: string
107     default: admin@example.com
108   
109   domain_record_type:
110     description: domain record type
111     type: string
112     default: A
113     constraints:
114     - allowed_values:
115       - A
116       - AAAA
117       - NS
118       - MX
119       - CNAME
120       - TXT
121       - SRV
123 resources:
125   web_node:
126     type: Rackspace::Cloud::Server
127     properties:
128       flavor: { get_param: web_node_flavor }
129       image: fd8e4f18-9270-4f43-8932-c3719ae2f7fd  # CentOS 6.5
130       name: { get_param: web_server_name }
131       key_name: { get_param: key_name }
132       user_data:
133         str_replace:
134           template: |
135             #!/bin/bash -v
136             yum -y install mysql httpd wordpress
137             sed -i "/Deny from All/d" /etc/httpd/conf.d/wordpress.conf
138             sed -i "s/Require local/Require all granted/" /etc/httpd/conf.d/wordpress.conf
139             sed --in-place --e "s/localhost/%dbhost%/" --e "s/database_name_here/%dbname%/" --e "s/username_here/%dbuser%/" --e "s/password_here/%dbpass%/" /usr/share/wordpress/wp-config.php
140             /etc/init.d/httpd start
141             chkconfig httpd on
142             iptables -I INPUT -p tcp --dport 80 -j ACCEPT
143             iptables-save > /etc/sysconfig/iptables
144           params:
145             "%dbhost%": { get_attr: [ db, hostname ] }
146             "%dbname%": { get_param: db_name }
147             "%dbuser%": { get_param: db_username }
148             "%dbpass%": { get_param: db_password }
150   db:
151     type: OS::Trove::Instance
152     properties:
153       name: { get_param: db_instance_name }
154       flavor: { get_param: db_flavor }
155       size: { get_param: db_volume_size }
156       users:
157       - name: { get_param: db_username }
158         password: { get_param: db_password }
159         databases:
160         - { get_param: db_name }
161       databases:
162       - name: { get_param: db_name }
164   dns:
165     type: Rackspace::Cloud::DNS
166     properties:
167       name: { get_param: domain_name }
168       emailAddress: { get_param: email_address }
169       records:
170       - name: { get_param: domain_name }
171         type: { get_param: domain_record_type }
172         data: { get_attr: [web_node, accessIPv4] }
173       - name: { get_param: domain_name }
174         type: NS
175         data: dns1.stabletransit.com
176       - name: { get_param: domain_name }
177         type: NS
178         data: dns2.stabletransit.com
180 outputs:
182   wordpress_url:
183     value:
184       str_replace:
185         template: "http://%ip%/wordpress"
186         params:
187           "%ip%": { get_attr: [ web_node, accessIPv4 ] }
188     description: Public URL for the wordpress blog
190   wordpress_domain_url:
191     value: 
192       str_replace:
193         template: "http://%domain%/wordpress"
194         params:
195           "%domain%": { get_param: domain_name }
196     description: Public URL for the wordpress blog with domain name