update comment in the template
[heat-templates.git] / qa / wp-single-linux-cdb.template
blob5f9db651b2713d1e6ba3094ced20a39752511a6e
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 resources:
101   php_app:
102     type: Rackspace::Cloud::Server
103     properties:
104       flavor: { get_param: web_node_flavor }
105       image: fd8e4f18-9270-4f43-8932-c3719ae2f7fd  # CentOS 6.5
106       name: { get_param: web_server_name }
107       key_name: { get_param: key_name }
108       user_data:
109         str_replace:
110           template: |
111             #!/bin/bash -v
112             yum -y install mysql httpd wordpress
113             sed -i "/Deny from All/d" /etc/httpd/conf.d/wordpress.conf
114             sed -i "s/Require local/Require all granted/" /etc/httpd/conf.d/wordpress.conf
115             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
116             /etc/init.d/httpd start
117             chkconfig httpd on
118             iptables -I INPUT -p tcp --dport 80 -j ACCEPT
119             iptables-save > /etc/sysconfig/iptables
120           params:
121             "%dbhost%": { get_attr: [ db, hostname ] }
122             "%dbname%": { get_param: db_name }
123             "%dbuser%": { get_param: db_username }
124             "%dbpass%": { get_param: db_password }
126   db:
127     type: OS::Trove::Instance
128     properties:
129       name: { get_param: db_instance_name }
130       flavor: { get_param: db_flavor }
131       size: { get_param: db_volume_size }
132       users:
133       - name: { get_param: db_username }
134         password: { get_param: db_password }
135         databases:
136         - { get_param: db_name }
137       databases:
138       - name: { get_param: db_name }
140 outputs:
142   wordpress_url:
143     value:
144       str_replace:
145         template: "http://%ip%/wordpress"
146         params:
147           "%ip%": { get_attr: [ php_app, accessIPv4 ] }
148     description: Public URL for the wordpress blog