update comment in the template
[heat-templates.git] / staging / wordpress-winserver-clouddb.template
blobff6aaa9cd98f6c4126b45182d8ae6ee906ba3eb5
1 heat_template_version: 2013-05-23
3 description: |
4   HEAT template for deploying a single-node wordpress application on Rackspace
5   Cloud using Windows Cloud Servers, and Cloud Databases.
7 parameters:
9   web_node_flavor:
10     description: flavor id for the web server instances
11     type: string
12     default: 4GB Standard Instance
13     constraints:
14     - allowed_values:
15       - 4GB Standard Instance
16       - 8GB Standard Instance
17       - 15GB Standard Instance
18       - 30GB Standard Instance
19       description: must be a valid Rackspace Cloud Server flavor.
21   image:
22     type: string
23     default: Windows Server 2012
24     description: Windows Server Image
26   web_server_name:
27     description: base name for the web server instances
28     type: string
29     default: Wordpress Webserver
31   db_name:
32     default: wordpress
33     description: the name for the wordpress database
34     type: string
35     constraints:
36     - length:
37         min: 1
38         max: 64
39       description: must be between 1 and 64 characters
40     - allowed_pattern: "[a-zA-Z][a-zA-Z0-9]*"
41       description: must begin with a letter and contain only alphanumeric characters.
43   db_username:
44     default: admin
45     hidden: true
46     description: wordpress database admin account username
47     type: string
48     constraints:
49     - length:
50         min: 1
51         max: 16
52       description: must be between 1 and 16 characters
53     - allowed_pattern: "[a-zA-Z][a-zA-Z0-9]*"
54       description: must begin with a letter and contain only alphanumeric characters.
56   db_password:
57     default: admin
58     hidden: true
59     description: wordpress database admin account password
60     type: string
61     constraints:
62     - length:
63         min: 1
64         max: 41
65       description: must be between 1 and 14 characters
66     - allowed_pattern: "[a-zA-Z0-9]*"
67       description : must contain only alphanumeric characters.
69   db_flavor:
70     description: wordpress database instance size
71     type: string
72     default: 1GB Instance
73     constraints:
74     - allowed_values:
75       - 1GB Instance
76       - 2GB Instance
77       - 4GB Instance
78       - 8GB Instance
79       - 16GB Instance
80       description: must be a valid cloud database flavor 
82   db_volume_size: 
83     description : wordpress database volume size (in GB)
84     type: number
85     default: 30
86     constraints:
87     - range:
88         min: 1
89         max: 1024
90       description: must be between 1 and 1024 GB
92   db_instance_name: 
93     description: the database instance name
94     type: string
95     default: WP_Cloud_DB
97 resources:
99   web_node: 
100     type: "Rackspace::Cloud::WinServer"
101     properties:
102       name: { get_param: web_server_name }
103       flavor: { get_param: web_node_flavor }
104       image: { get_param: image }
105       user_data:
106         str_replace:
107           template: |
108             $source = "http://download.microsoft.com/download/7/0/4/704CEB4C-9F42-4962-A2B0-5C84B0682C7A/WebPlatformInstaller_amd64_en-US.msi"
109             $destination = "webpi.msi"
110             $wc = New-Object System.Net.WebClient
111             $wc.DownloadFile($source, $destination)
112             Start-Process msiexec -ArgumentList "/i webpi.msi /qn"  -NoNewWindow -Wait
113             echo "AppPath[@]Default Web Site/wordpress" > wp.app
114             echo "DbServer[@]%dbhost%" >> wp.app
115             echo "DbName[@]%dbname%" >> wp.app
116             echo "DbUsername[@]%dbuser%" >> wp.app
117             echo "DbPassword[@]%dbpassword%" >> wp.app
118             echo "DbAdminUsername[@]%dbuser%" >> wp.app
119             echo "DbAdminPassword[@]%dbpassword%" >> wp.app
120             $tmpprofile = $env:userprofile
121             $env:userprofile = "c:\users\administrator"
122             $wpicmd = "C:\Program Files\Microsoft\Web Platform Installer\WebPICMD.exe"
123             Start-Process $wpicmd -ArgumentList "/Install /Application:Wordpress@wp.app /MySQLPassword:%dbpassword% /AcceptEULA /Log:.\wpi.log"  -NoNewWindow -Wait
124             $env:userprofile = $tmpprofile
125           params:
126             "%dbhost%": { get_attr: [ db, hostname ] }
127             "%dbname%": { get_param: db_name }
128             "%dbuser%": { get_param: db_username }
129             "%dbpassword%": { get_param: db_password }
131   db:
132     type: OS::Trove::Instance
133     properties:
134       name: { get_param: db_instance_name }
135       flavor: { get_param: db_flavor }
136       size: { get_param: db_volume_size }
137       users:
138       - name: { get_param: db_username }
139         password: { get_param: db_password }
140         databases:
141         - { get_param: db_name }
142       databases:
143       - name: { get_param: db_name }
145 outputs:
147   wordpress_url:
148     value: 
149       str_replace:
150         template: http://%ip%/wordpress
151         params:
152           "%ip%": { get_attr: [ web_node, accessIPv4 ] }
153     description: Public URL for the wordpress blog