kitchen-azurerm 0.1.0.pre → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +270 -1
- data/lib/kitchen/driver/azurerm.rb +62 -231
- metadata +5 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1392862ee3f3f20c62aa95d89565b1d86451624
|
4
|
+
data.tar.gz: b430a55ccc4d41297dfb9518630a37e48b116c05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 107f96c6c1dbb7512a31811ac68d6d0491836dd92932db676cb5edd96694450ef2c9382379f11ec0e2a293df58b9d6c8970dd5dddffee3927c519f669a134b5a
|
7
|
+
data.tar.gz: 3c5e11e9c0df04fdfda2d1bae924d3602b2c6c2ad60cd6dd6704fad51fb712abcfbdb2ffc586ba7f06e1fde8617d2df4b82848e08b4996d87d6fef7185cae894
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -1,2 +1,271 @@
|
|
1
1
|
# kitchen-azurerm
|
2
|
-
|
2
|
+
|
3
|
+
**kitchen-azurerm** is a driver for the popular test harness [Test Kitchen](http://kitchen.ci) that allows Microsoft Azure resources to be provisioned prior to testing. This driver uses the new Microsoft Azure Resource Management REST API via the [azure-sdk-for-ruby](https://github.com/azure/azure-sdk-for-ruby).
|
4
|
+
|
5
|
+
[![Gem Version](https://badge.fury.io/rb/kitchen-azurerm.svg)](http://badge.fury.io/rb/kitchen-azurerm)
|
6
|
+
|
7
|
+
## Known issues
|
8
|
+
- WinRM support is not complete, Windows machines will not converge. They will provision fine however.
|
9
|
+
|
10
|
+
## Quick-start
|
11
|
+
### Installation
|
12
|
+
This plugin is distributed as a Ruby Gem. To install it, run:
|
13
|
+
|
14
|
+
```$ gem install kitchen-azurerm```
|
15
|
+
|
16
|
+
Note if you are running the ChefDK you may need to prefix the command with chef, i.e. ```$ chef gem install kitchen-azurerm```
|
17
|
+
|
18
|
+
### Configuration
|
19
|
+
|
20
|
+
For the driver to interact with the Microsoft Azure Resource management REST API, a Service Principal needs to be configured with Owner rights against the specific subscription being targeted. Using an Organization account and related password is no longer supported. To create a Service Principal and apply the correct permissions, follow the instructions in the article: [Authenticating a service principal with Azure Resource Manager](https://azure.microsoft.com/en-us/documentation/articles/resource-group-authenticate-service-principal/#authenticate-service-principal-with-password---azure-cli)
|
21
|
+
|
22
|
+
You will essentially need 4 parameters from the above article to configure Chef Provisioning: **Subscription ID**, **Client ID**, **Client Secret/Password** and **Tenant ID**. These can be easily obtained using the azure-cli tools (v0.9.8 or higher) on any platform.
|
23
|
+
|
24
|
+
Using a text editor, open or create the file ```~/.azure/credentials``` and add the following section:
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
[abcd1234-YOUR-GUID-HERE-abcdef123456]
|
28
|
+
client_id = "48b9bba3-YOUR-GUID-HERE-90f0b68ce8ba"
|
29
|
+
client_secret = "your-client-secret-here"
|
30
|
+
tenant_id = "9c117323-YOUR-GUID-HERE-9ee430723ba3"
|
31
|
+
```
|
32
|
+
|
33
|
+
If preferred, you may also set the following environment variables.
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
AZURE_CLIENT_ID="48b9bba3-YOUR-GUID-HERE-90f0b68ce8ba"
|
37
|
+
AZURE_CLIENT_SECRET="your-client-secret-here"
|
38
|
+
AZURE_TENANT_ID="9c117323-YOUR-GUID-HERE-9ee430723ba3"
|
39
|
+
```
|
40
|
+
|
41
|
+
Note that the environment variables, if set, take preference over the values in a configuration file.
|
42
|
+
|
43
|
+
### .kitchen.yml example 1 - Linux/Ubuntu
|
44
|
+
|
45
|
+
Here's an example ```.kitchen.yml``` file that provisions 3 different types of Ubuntu Server, using Chef Zero as the provisioner and SSH as the transport.
|
46
|
+
|
47
|
+
```yml
|
48
|
+
---
|
49
|
+
driver:
|
50
|
+
name: AzureRM
|
51
|
+
|
52
|
+
driver_config:
|
53
|
+
subscription_id: '4801fa9d-YOUR-GUID-HERE-b265ff49ce21'
|
54
|
+
location: 'West Europe'
|
55
|
+
machine_size: 'Standard_D1'
|
56
|
+
|
57
|
+
provisioner:
|
58
|
+
name: chef_zero
|
59
|
+
|
60
|
+
platforms:
|
61
|
+
- name: ubuntu-12.04
|
62
|
+
driver_config:
|
63
|
+
image_urn: Canonical:UbuntuServer:12.04.5-LTS:latest
|
64
|
+
- name: ubuntu-14.04
|
65
|
+
driver_config:
|
66
|
+
image_urn: Canonical:UbuntuServer:14.04.3-LTS:latest
|
67
|
+
- name: ubuntu-15.04
|
68
|
+
driver_config:
|
69
|
+
image_urn: Canonical:UbuntuServer:15.04:latest
|
70
|
+
|
71
|
+
suites:
|
72
|
+
- name: default
|
73
|
+
run_list:
|
74
|
+
- recipe[kitchentesting::default]
|
75
|
+
attributes:
|
76
|
+
```
|
77
|
+
|
78
|
+
### Parallel execution
|
79
|
+
Parallel execution of create/converge/destroy is supported via the --parallel parameter.
|
80
|
+
|
81
|
+
### .kitchen.yml example 2 - Windows
|
82
|
+
|
83
|
+
```kitchen test --parallel```
|
84
|
+
|
85
|
+
Here's a further example ```.kitchen.yml``` file that will provision a Windows Server 2012 R2 instance, using WinRM as the transport:
|
86
|
+
|
87
|
+
```yml
|
88
|
+
---
|
89
|
+
driver:
|
90
|
+
name: AzureRM
|
91
|
+
|
92
|
+
driver_config:
|
93
|
+
subscription_id: '4801fa9d-YOUR-GUID-HERE-b265ff49ce21'
|
94
|
+
location: 'West Europe'
|
95
|
+
machine_size: 'Standard_D1'
|
96
|
+
|
97
|
+
provisioner:
|
98
|
+
name: chef_zero
|
99
|
+
|
100
|
+
platforms:
|
101
|
+
- name: windows2012-r2
|
102
|
+
driver_config:
|
103
|
+
image_urn: MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest
|
104
|
+
transport:
|
105
|
+
name: winrm
|
106
|
+
|
107
|
+
suites:
|
108
|
+
- name: default
|
109
|
+
run_list:
|
110
|
+
- recipe[kitchentesting::default]
|
111
|
+
attributes:
|
112
|
+
```
|
113
|
+
|
114
|
+
### How to retrieve the image_urn
|
115
|
+
You can use the azure (azure-cli) command line tools to interrogate for the Urn. All 4 parts of the Urn must be specified, though the last part can be changed to "latest" to indicate you always wish to provision the latest operating system and patches.
|
116
|
+
|
117
|
+
```$ azure vm image list "West Europe" Canonical UbuntuServer```
|
118
|
+
|
119
|
+
This will return a list like the following:
|
120
|
+
|
121
|
+
```
|
122
|
+
data: Publisher Offer Sku OS Version Location Urn
|
123
|
+
data: --------- ------------ ----------------- --------- --------------- ---------- --------------------------------------------------------
|
124
|
+
data: Canonical UbuntuServer 12.04.2-LTS undefined 12.04.201302250 westeurope Canonical:UbuntuServer:12.04.2-LTS:12.04.201302250
|
125
|
+
data: Canonical UbuntuServer 12.04.2-LTS undefined 12.04.201303250 westeurope Canonical:UbuntuServer:12.04.2-LTS:12.04.201303250
|
126
|
+
data: Canonical UbuntuServer 12.04.2-LTS undefined 12.04.201304150 westeurope Canonical:UbuntuServer:12.04.2-LTS:12.04.201304150
|
127
|
+
data: Canonical UbuntuServer 12.04.2-LTS undefined 12.04.201305160 westeurope Canonical:UbuntuServer:12.04.2-LTS:12.04.201305160
|
128
|
+
data: Canonical UbuntuServer 12.04.2-LTS undefined 12.04.201305270 westeurope Canonical:UbuntuServer:12.04.2-LTS:12.04.201305270
|
129
|
+
data: Canonical UbuntuServer 12.04.2-LTS undefined 12.04.201306030 westeurope Canonical:UbuntuServer:12.04.2-LTS:12.04.201306030
|
130
|
+
data: Canonical UbuntuServer 12.04.2-LTS undefined 12.04.201306240 westeurope Canonical:UbuntuServer:12.04.2-LTS:12.04.201306240
|
131
|
+
data: Canonical UbuntuServer 12.04.3-LTS undefined 12.04.201308270 westeurope Canonical:UbuntuServer:12.04.3-LTS:12.04.201308270
|
132
|
+
data: Canonical UbuntuServer 12.04.3-LTS undefined 12.04.201309090 westeurope Canonical:UbuntuServer:12.04.3-LTS:12.04.201309090
|
133
|
+
data: Canonical UbuntuServer 12.04.3-LTS undefined 12.04.201309161 westeurope Canonical:UbuntuServer:12.04.3-LTS:12.04.201309161
|
134
|
+
data: Canonical UbuntuServer 12.04.3-LTS undefined 12.04.201310030 westeurope Canonical:UbuntuServer:12.04.3-LTS:12.04.201310030
|
135
|
+
data: Canonical UbuntuServer 12.04.3-LTS undefined 12.04.201310240 westeurope Canonical:UbuntuServer:12.04.3-LTS:12.04.201310240
|
136
|
+
data: Canonical UbuntuServer 12.04.3-LTS undefined 12.04.201311110 westeurope Canonical:UbuntuServer:12.04.3-LTS:12.04.201311110
|
137
|
+
data: Canonical UbuntuServer 12.04.3-LTS undefined 12.04.201311140 westeurope Canonical:UbuntuServer:12.04.3-LTS:12.04.201311140
|
138
|
+
data: Canonical UbuntuServer 12.04.3-LTS undefined 12.04.201312050 westeurope Canonical:UbuntuServer:12.04.3-LTS:12.04.201312050
|
139
|
+
data: Canonical UbuntuServer 12.04.3-LTS undefined 12.04.201401270 westeurope Canonical:UbuntuServer:12.04.3-LTS:12.04.201401270
|
140
|
+
data: Canonical UbuntuServer 12.04.3-LTS undefined 12.04.201401300 westeurope Canonical:UbuntuServer:12.04.3-LTS:12.04.201401300
|
141
|
+
data: Canonical UbuntuServer 12.04.4-LTS undefined 12.04.201402270 westeurope Canonical:UbuntuServer:12.04.4-LTS:12.04.201402270
|
142
|
+
data: Canonical UbuntuServer 12.04.4-LTS undefined 12.04.201404080 westeurope Canonical:UbuntuServer:12.04.4-LTS:12.04.201404080
|
143
|
+
data: Canonical UbuntuServer 12.04.4-LTS undefined 12.04.201404280 westeurope Canonical:UbuntuServer:12.04.4-LTS:12.04.201404280
|
144
|
+
data: Canonical UbuntuServer 12.04.4-LTS undefined 12.04.201405140 westeurope Canonical:UbuntuServer:12.04.4-LTS:12.04.201405140
|
145
|
+
data: Canonical UbuntuServer 12.04.4-LTS undefined 12.04.201406060 westeurope Canonical:UbuntuServer:12.04.4-LTS:12.04.201406060
|
146
|
+
data: Canonical UbuntuServer 12.04.4-LTS undefined 12.04.201406190 westeurope Canonical:UbuntuServer:12.04.4-LTS:12.04.201406190
|
147
|
+
data: Canonical UbuntuServer 12.04.4-LTS undefined 12.04.201407020 westeurope Canonical:UbuntuServer:12.04.4-LTS:12.04.201407020
|
148
|
+
data: Canonical UbuntuServer 12.04.4-LTS undefined 12.04.201407170 westeurope Canonical:UbuntuServer:12.04.4-LTS:12.04.201407170
|
149
|
+
data: Canonical UbuntuServer 12.04.5-DAILY-LTS undefined 12.04.201508180 westeurope Canonical:UbuntuServer:12.04.5-DAILY-LTS:12.04.201508180
|
150
|
+
data: Canonical UbuntuServer 12.04.5-DAILY-LTS undefined 12.04.201508190 westeurope Canonical:UbuntuServer:12.04.5-DAILY-LTS:12.04.201508190
|
151
|
+
data: Canonical UbuntuServer 12.04.5-DAILY-LTS undefined 12.04.201508313 westeurope Canonical:UbuntuServer:12.04.5-DAILY-LTS:12.04.201508313
|
152
|
+
data: Canonical UbuntuServer 12.04.5-DAILY-LTS undefined 12.04.201509020 westeurope Canonical:UbuntuServer:12.04.5-DAILY-LTS:12.04.201509020
|
153
|
+
data: Canonical UbuntuServer 12.04.5-DAILY-LTS undefined 12.04.201509040 westeurope Canonical:UbuntuServer:12.04.5-DAILY-LTS:12.04.201509040
|
154
|
+
data: Canonical UbuntuServer 12.04.5-DAILY-LTS undefined 12.04.201509050 westeurope Canonical:UbuntuServer:12.04.5-DAILY-LTS:12.04.201509050
|
155
|
+
data: Canonical UbuntuServer 12.04.5-DAILY-LTS undefined 12.04.201509060 westeurope Canonical:UbuntuServer:12.04.5-DAILY-LTS:12.04.201509060
|
156
|
+
data: Canonical UbuntuServer 12.04.5-DAILY-LTS undefined 12.04.201509090 westeurope Canonical:UbuntuServer:12.04.5-DAILY-LTS:12.04.201509090
|
157
|
+
data: Canonical UbuntuServer 12.04.5-DAILY-LTS undefined 12.04.201509100 westeurope Canonical:UbuntuServer:12.04.5-DAILY-LTS:12.04.201509100
|
158
|
+
data: Canonical UbuntuServer 12.04.5-DAILY-LTS undefined 12.04.201509170 westeurope Canonical:UbuntuServer:12.04.5-DAILY-LTS:12.04.201509170
|
159
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201408060 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201408060
|
160
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201408292 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201408292
|
161
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201409092 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201409092
|
162
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201409231 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201409231
|
163
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201409244 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201409244
|
164
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201409251 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201409251
|
165
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201409252 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201409252
|
166
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201409270 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201409270
|
167
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201501190 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201501190
|
168
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201501270 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201501270
|
169
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201502040 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201502040
|
170
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201503090 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201503090
|
171
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201504010 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201504010
|
172
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201504130 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201504130
|
173
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201505120 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201505120
|
174
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201505221 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201505221
|
175
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201506100 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201506100
|
176
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201506150 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201506150
|
177
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201506160 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201506160
|
178
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201507070 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201507070
|
179
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201507280 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201507280
|
180
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201507301 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201507301
|
181
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201507311 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201507311
|
182
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201508190 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201508190
|
183
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201509060 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201509060
|
184
|
+
data: Canonical UbuntuServer 12.04.5-LTS undefined 12.04.201509090 westeurope Canonical:UbuntuServer:12.04.5-LTS:12.04.201509090
|
185
|
+
data: Canonical UbuntuServer 12.10 undefined 12.10.201212180 westeurope Canonical:UbuntuServer:12.10:12.10.201212180
|
186
|
+
data: Canonical UbuntuServer 14.04.0-LTS undefined 14.04.201404140 westeurope Canonical:UbuntuServer:14.04.0-LTS:14.04.201404140
|
187
|
+
data: Canonical UbuntuServer 14.04.0-LTS undefined 14.04.201404142 westeurope Canonical:UbuntuServer:14.04.0-LTS:14.04.201404142
|
188
|
+
data: Canonical UbuntuServer 14.04.0-LTS undefined 14.04.201404161 westeurope Canonical:UbuntuServer:14.04.0-LTS:14.04.201404161
|
189
|
+
data: Canonical UbuntuServer 14.04.0-LTS undefined 14.04.201405280 westeurope Canonical:UbuntuServer:14.04.0-LTS:14.04.201405280
|
190
|
+
data: Canonical UbuntuServer 14.04.0-LTS undefined 14.04.201406061 westeurope Canonical:UbuntuServer:14.04.0-LTS:14.04.201406061
|
191
|
+
data: Canonical UbuntuServer 14.04.0-LTS undefined 14.04.201406181 westeurope Canonical:UbuntuServer:14.04.0-LTS:14.04.201406181
|
192
|
+
data: Canonical UbuntuServer 14.04.0-LTS undefined 14.04.201407240 westeurope Canonical:UbuntuServer:14.04.0-LTS:14.04.201407240
|
193
|
+
data: Canonical UbuntuServer 14.04.1-LTS undefined 14.04.201409090 westeurope Canonical:UbuntuServer:14.04.1-LTS:14.04.201409090
|
194
|
+
data: Canonical UbuntuServer 14.04.1-LTS undefined 14.04.201409240 westeurope Canonical:UbuntuServer:14.04.1-LTS:14.04.201409240
|
195
|
+
data: Canonical UbuntuServer 14.04.1-LTS undefined 14.04.201409260 westeurope Canonical:UbuntuServer:14.04.1-LTS:14.04.201409260
|
196
|
+
data: Canonical UbuntuServer 14.04.1-LTS undefined 14.04.201409270 westeurope Canonical:UbuntuServer:14.04.1-LTS:14.04.201409270
|
197
|
+
data: Canonical UbuntuServer 14.04.1-LTS undefined 14.04.201411250 westeurope Canonical:UbuntuServer:14.04.1-LTS:14.04.201411250
|
198
|
+
data: Canonical UbuntuServer 14.04.1-LTS undefined 14.04.201501230 westeurope Canonical:UbuntuServer:14.04.1-LTS:14.04.201501230
|
199
|
+
data: Canonical UbuntuServer 14.04.2-LTS undefined 14.04.201503090 westeurope Canonical:UbuntuServer:14.04.2-LTS:14.04.201503090
|
200
|
+
data: Canonical UbuntuServer 14.04.2-LTS undefined 14.04.201505060 westeurope Canonical:UbuntuServer:14.04.2-LTS:14.04.201505060
|
201
|
+
data: Canonical UbuntuServer 14.04.2-LTS undefined 14.04.201506100 westeurope Canonical:UbuntuServer:14.04.2-LTS:14.04.201506100
|
202
|
+
data: Canonical UbuntuServer 14.04.2-LTS undefined 14.04.201507060 westeurope Canonical:UbuntuServer:14.04.2-LTS:14.04.201507060
|
203
|
+
data: Canonical UbuntuServer 14.04.3-DAILY-LTS undefined 14.04.201509020 westeurope Canonical:UbuntuServer:14.04.3-DAILY-LTS:14.04.201509020
|
204
|
+
data: Canonical UbuntuServer 14.04.3-DAILY-LTS undefined 14.04.201509030 westeurope Canonical:UbuntuServer:14.04.3-DAILY-LTS:14.04.201509030
|
205
|
+
data: Canonical UbuntuServer 14.04.3-DAILY-LTS undefined 14.04.201509040 westeurope Canonical:UbuntuServer:14.04.3-DAILY-LTS:14.04.201509040
|
206
|
+
data: Canonical UbuntuServer 14.04.3-DAILY-LTS undefined 14.04.201509050 westeurope Canonical:UbuntuServer:14.04.3-DAILY-LTS:14.04.201509050
|
207
|
+
data: Canonical UbuntuServer 14.04.3-DAILY-LTS undefined 14.04.201509070 westeurope Canonical:UbuntuServer:14.04.3-DAILY-LTS:14.04.201509070
|
208
|
+
data: Canonical UbuntuServer 14.04.3-DAILY-LTS undefined 14.04.201509080 westeurope Canonical:UbuntuServer:14.04.3-DAILY-LTS:14.04.201509080
|
209
|
+
data: Canonical UbuntuServer 14.04.3-DAILY-LTS undefined 14.04.201509091 westeurope Canonical:UbuntuServer:14.04.3-DAILY-LTS:14.04.201509091
|
210
|
+
data: Canonical UbuntuServer 14.04.3-DAILY-LTS undefined 14.04.201509110 westeurope Canonical:UbuntuServer:14.04.3-DAILY-LTS:14.04.201509110
|
211
|
+
data: Canonical UbuntuServer 14.04.3-DAILY-LTS undefined 14.04.201509160 westeurope Canonical:UbuntuServer:14.04.3-DAILY-LTS:14.04.201509160
|
212
|
+
data: Canonical UbuntuServer 14.04.3-DAILY-LTS undefined 14.04.201509220 westeurope Canonical:UbuntuServer:14.04.3-DAILY-LTS:14.04.201509220
|
213
|
+
data: Canonical UbuntuServer 14.04.3-LTS undefined 14.04.201508050 westeurope Canonical:UbuntuServer:14.04.3-LTS:14.04.201508050
|
214
|
+
data: Canonical UbuntuServer 14.04.3-LTS undefined 14.04.201509080 westeurope Canonical:UbuntuServer:14.04.3-LTS:14.04.201509080
|
215
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201504171 westeurope Canonical:UbuntuServer:15.04:15.04.201504171
|
216
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201504201 westeurope Canonical:UbuntuServer:15.04:15.04.201504201
|
217
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201504210 westeurope Canonical:UbuntuServer:15.04:15.04.201504210
|
218
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201504211 westeurope Canonical:UbuntuServer:15.04:15.04.201504211
|
219
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201504220 westeurope Canonical:UbuntuServer:15.04:15.04.201504220
|
220
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201505130 westeurope Canonical:UbuntuServer:15.04:15.04.201505130
|
221
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201505131 westeurope Canonical:UbuntuServer:15.04:15.04.201505131
|
222
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201505281 westeurope Canonical:UbuntuServer:15.04:15.04.201505281
|
223
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201506110 westeurope Canonical:UbuntuServer:15.04:15.04.201506110
|
224
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201506161 westeurope Canonical:UbuntuServer:15.04:15.04.201506161
|
225
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201507070 westeurope Canonical:UbuntuServer:15.04:15.04.201507070
|
226
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201507220 westeurope Canonical:UbuntuServer:15.04:15.04.201507220
|
227
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201507280 westeurope Canonical:UbuntuServer:15.04:15.04.201507280
|
228
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201507290 westeurope Canonical:UbuntuServer:15.04:15.04.201507290
|
229
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201508180 westeurope Canonical:UbuntuServer:15.04:15.04.201508180
|
230
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201509090 westeurope Canonical:UbuntuServer:15.04:15.04.201509090
|
231
|
+
data: Canonical UbuntuServer 15.04 undefined 15.04.201509100 westeurope Canonical:UbuntuServer:15.04:15.04.201509100
|
232
|
+
data: Canonical UbuntuServer 15.04-beta undefined 15.04.201502245 westeurope Canonical:UbuntuServer:15.04-beta:15.04.201502245
|
233
|
+
data: Canonical UbuntuServer 15.04-beta undefined 15.04.201503250 westeurope Canonical:UbuntuServer:15.04-beta:15.04.201503250
|
234
|
+
data: Canonical UbuntuServer 15.04-DAILY undefined 15.04.201508210 westeurope Canonical:UbuntuServer:15.04-DAILY:15.04.201508210
|
235
|
+
data: Canonical UbuntuServer 15.04-DAILY undefined 15.04.201508283 westeurope Canonical:UbuntuServer:15.04-DAILY:15.04.201508283
|
236
|
+
data: Canonical UbuntuServer 15.04-DAILY undefined 15.04.201509010 westeurope Canonical:UbuntuServer:15.04-DAILY:15.04.201509010
|
237
|
+
data: Canonical UbuntuServer 15.04-DAILY undefined 15.04.201509020 westeurope Canonical:UbuntuServer:15.04-DAILY:15.04.201509020
|
238
|
+
data: Canonical UbuntuServer 15.04-DAILY undefined 15.04.201509030 westeurope Canonical:UbuntuServer:15.04-DAILY:15.04.201509030
|
239
|
+
data: Canonical UbuntuServer 15.04-DAILY undefined 15.04.201509090 westeurope Canonical:UbuntuServer:15.04-DAILY:15.04.201509090
|
240
|
+
data: Canonical UbuntuServer 15.04-DAILY undefined 15.04.201509100 westeurope Canonical:UbuntuServer:15.04-DAILY:15.04.201509100
|
241
|
+
data: Canonical UbuntuServer 15.04-DAILY undefined 15.04.201509110 westeurope Canonical:UbuntuServer:15.04-DAILY:15.04.201509110
|
242
|
+
data: Canonical UbuntuServer 15.04-DAILY undefined 15.04.201509111 westeurope Canonical:UbuntuServer:15.04-DAILY:15.04.201509111
|
243
|
+
data: Canonical UbuntuServer 15.04-DAILY undefined 15.04.201509170 westeurope Canonical:UbuntuServer:15.04-DAILY:15.04.201509170
|
244
|
+
data: Canonical UbuntuServer 15.10-alpha undefined 15.10.201506240 westeurope Canonical:UbuntuServer:15.10-alpha:15.10.201506240
|
245
|
+
data: Canonical UbuntuServer 15.10-alpha undefined 15.10.201507281 westeurope Canonical:UbuntuServer:15.10-alpha:15.10.201507281
|
246
|
+
data: Canonical UbuntuServer 15.10-beta undefined 15.10.201508250 westeurope Canonical:UbuntuServer:15.10-beta:15.10.201508250
|
247
|
+
data: Canonical UbuntuServer 15.10-DAILY undefined 15.10.201509120 westeurope Canonical:UbuntuServer:15.10-DAILY:15.10.201509120
|
248
|
+
data: Canonical UbuntuServer 15.10-DAILY undefined 15.10.201509130 westeurope Canonical:UbuntuServer:15.10-DAILY:15.10.201509130
|
249
|
+
data: Canonical UbuntuServer 15.10-DAILY undefined 15.10.201509140 westeurope Canonical:UbuntuServer:15.10-DAILY:15.10.201509140
|
250
|
+
data: Canonical UbuntuServer 15.10-DAILY undefined 15.10.201509150 westeurope Canonical:UbuntuServer:15.10-DAILY:15.10.201509150
|
251
|
+
data: Canonical UbuntuServer 15.10-DAILY undefined 15.10.201509160 westeurope Canonical:UbuntuServer:15.10-DAILY:15.10.201509160
|
252
|
+
data: Canonical UbuntuServer 15.10-DAILY undefined 15.10.201509170 westeurope Canonical:UbuntuServer:15.10-DAILY:15.10.201509170
|
253
|
+
data: Canonical UbuntuServer 15.10-DAILY undefined 15.10.201509180 westeurope Canonical:UbuntuServer:15.10-DAILY:15.10.201509180
|
254
|
+
data: Canonical UbuntuServer 15.10-DAILY undefined 15.10.201509190 westeurope Canonical:UbuntuServer:15.10-DAILY:15.10.201509190
|
255
|
+
data: Canonical UbuntuServer 15.10-DAILY undefined 15.10.201509210 westeurope Canonical:UbuntuServer:15.10-DAILY:15.10.201509210
|
256
|
+
data: Canonical UbuntuServer 15.10-DAILY undefined 15.10.201509220 westeurope Canonical:UbuntuServer:15.10-DAILY:15.10.201509220
|
257
|
+
info: vm image list command OK
|
258
|
+
```
|
259
|
+
|
260
|
+
### Additional information/notes
|
261
|
+
- driver_config also takes a username and password parameter, the defaults if these are not specified are "azure" and "P2ssw0rd" respectively.
|
262
|
+
|
263
|
+
## Contributing
|
264
|
+
|
265
|
+
Contributions to the project are welcome via submitting Pull Requests.
|
266
|
+
|
267
|
+
1. Fork it ( https://github.com/pendrica/kitchen-azurerm/fork )
|
268
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
269
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
270
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
271
|
+
5. Create a new Pull Request
|
@@ -11,23 +11,48 @@ module Kitchen
|
|
11
11
|
#
|
12
12
|
class AzureRM < Kitchen::Driver::Base
|
13
13
|
attr_accessor :resource_management_client
|
14
|
-
|
14
|
+
|
15
15
|
default_config(:azure_resource_group_name) do |config|
|
16
16
|
"kitchen-#{config.instance.name}"
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
|
+
default_config(:image_urn) do |_config|
|
20
|
+
'Canonical:UbuntuServer:14.04.3-LTS:latest'
|
21
|
+
end
|
22
|
+
|
23
|
+
default_config(:username) do |_config|
|
24
|
+
'azure'
|
25
|
+
end
|
26
|
+
|
27
|
+
default_config(:password) do |_config|
|
28
|
+
'P2ssw0rd'
|
29
|
+
end
|
30
|
+
|
19
31
|
def create(state)
|
20
32
|
puts 'in kitchen create'
|
21
33
|
state[:uuid] = "#{SecureRandom.hex(8)}"
|
22
34
|
state[:azure_resource_group_name] = "#{config[:azure_resource_group_name]}-#{state[:uuid]}"
|
23
35
|
state[:subscription_id] = config[:subscription_id]
|
24
|
-
state[:username] =
|
25
|
-
state[:password] =
|
26
|
-
|
36
|
+
state[:username] = config[:username]
|
37
|
+
state[:password] = config[:password]
|
38
|
+
image_publisher, image_offer, image_sku, image_version = config[:image_urn].split(':', 4)
|
39
|
+
deployment_parameters = {
|
40
|
+
location: config[:location],
|
41
|
+
vmSize: config[:machine_size],
|
42
|
+
newStorageAccountName: "storage#{state[:uuid]}",
|
43
|
+
adminUsername: state[:username],
|
44
|
+
adminPassword: state[:password],
|
45
|
+
dnsNameForPublicIP: "kitchen-#{state[:uuid]}",
|
46
|
+
imagePublisher: image_publisher,
|
47
|
+
imageOffer: image_offer,
|
48
|
+
imageSku: image_sku,
|
49
|
+
imageVersion: image_version
|
50
|
+
}
|
51
|
+
|
27
52
|
credentials = Kitchen::Driver::Credentials.new.azure_credentials_for_subscription(config[:subscription_id])
|
28
53
|
@resource_management_client = ::Azure::ARM::Resources::ResourceManagementClient.new(credentials)
|
29
54
|
@resource_management_client.subscription_id = config[:subscription_id]
|
30
|
-
|
55
|
+
|
31
56
|
# Create Resource Group
|
32
57
|
resource_group = ::Azure::ARM::Resources::Models::ResourceGroup.new
|
33
58
|
resource_group.location = config[:location]
|
@@ -39,32 +64,23 @@ module Kitchen
|
|
39
64
|
raise operation_error
|
40
65
|
end
|
41
66
|
|
42
|
-
#
|
43
|
-
parameters = {
|
44
|
-
location: config[:location],
|
45
|
-
vmSize: config[:machine_size],
|
46
|
-
newStorageAccountName: "storage#{state[:uuid]}",
|
47
|
-
adminUsername: state[:username],
|
48
|
-
adminPassword: state[:password],
|
49
|
-
dnsNameForPublicIP: "publicip#{state[:uuid]}",
|
50
|
-
ubuntuOSVersion: '14.04.2-LTS'
|
51
|
-
}
|
52
|
-
|
67
|
+
# Execute deployment steps
|
53
68
|
begin
|
54
|
-
deployment_name = "deploy
|
69
|
+
deployment_name = "deploy-#{state[:uuid]}"
|
55
70
|
puts "Creating Deployment: #{deployment_name}"
|
56
|
-
resource_management_client.deployments.create_or_update(state[:azure_resource_group_name], deployment_name, deployment(
|
71
|
+
resource_management_client.deployments.create_or_update(state[:azure_resource_group_name], deployment_name, deployment(virtual_machine_deployment_template, deployment_parameters)).value!
|
57
72
|
rescue ::MsRestAzure::AzureOperationError => operation_error
|
58
73
|
puts operation_error.body['error']
|
59
74
|
raise operation_error
|
60
75
|
end
|
61
76
|
|
77
|
+
# Monitor all operations until completion
|
62
78
|
follow_deployment_until_end_state(state[:azure_resource_group_name], deployment_name)
|
63
|
-
|
79
|
+
|
64
80
|
# Now retrieve the public IP from the resource group:
|
65
81
|
network_management_client = ::Azure::ARM::Network::NetworkResourceProviderClient.new(credentials)
|
66
82
|
network_management_client.subscription_id = config[:subscription_id]
|
67
|
-
result = network_management_client.public_ip_addresses.get(state[:azure_resource_group_name], '
|
83
|
+
result = network_management_client.public_ip_addresses.get(state[:azure_resource_group_name], 'publicip').value!
|
68
84
|
puts "IP Address is: #{result.body.properties.ip_address} [#{result.body.properties.dns_settings.fqdn}]"
|
69
85
|
state[:server_id] = "vm#{state[:uuid]}"
|
70
86
|
state[:hostname] = result.body.properties.ip_address
|
@@ -124,8 +140,8 @@ module Kitchen
|
|
124
140
|
resource_management_client.subscription_id = state[:subscription_id]
|
125
141
|
begin
|
126
142
|
puts "Destroying Resource Group: #{state[:azure_resource_group_name]}"
|
127
|
-
resource_management_client.resource_groups.
|
128
|
-
puts 'Destroy operation will continue in the background.'
|
143
|
+
resource_management_client.resource_groups.begin_delete(state[:azure_resource_group_name]).value!
|
144
|
+
puts 'Destroy operation accepted and will continue in the background.'
|
129
145
|
rescue ::MsRestAzure::AzureOperationError => operation_error
|
130
146
|
puts operation_error.body['error']
|
131
147
|
raise operation_error
|
@@ -136,8 +152,7 @@ module Kitchen
|
|
136
152
|
state.delete(:password)
|
137
153
|
end
|
138
154
|
|
139
|
-
def
|
140
|
-
# as per: https://github.com/Azure/azure-quickstart-templates/blob/master/101-simple-windows-vm/azuredeploy.json
|
155
|
+
def virtual_machine_deployment_template
|
141
156
|
<<-EOH
|
142
157
|
{
|
143
158
|
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
@@ -164,7 +179,7 @@ module Kitchen
|
|
164
179
|
"adminUsername": {
|
165
180
|
"type": "string",
|
166
181
|
"metadata": {
|
167
|
-
"description": "
|
182
|
+
"description": "User name for the Virtual Machine."
|
168
183
|
}
|
169
184
|
},
|
170
185
|
"adminPassword": {
|
@@ -179,233 +194,49 @@ module Kitchen
|
|
179
194
|
"description": "Unique DNS Name for the Public IP used to access the Virtual Machine."
|
180
195
|
}
|
181
196
|
},
|
182
|
-
"
|
197
|
+
"imagePublisher": {
|
183
198
|
"type": "string",
|
184
|
-
"defaultValue": "
|
185
|
-
"allowedValues": [
|
186
|
-
"2008-R2-SP1",
|
187
|
-
"2012-Datacenter",
|
188
|
-
"2012-R2-Datacenter"
|
189
|
-
],
|
199
|
+
"defaultValue": "Canonical",
|
190
200
|
"metadata": {
|
191
|
-
"description": "
|
192
|
-
}
|
193
|
-
}
|
194
|
-
},
|
195
|
-
"variables": {
|
196
|
-
"location": "[parameters('location')]",
|
197
|
-
"imagePublisher": "MicrosoftWindowsServer",
|
198
|
-
"imageOffer": "WindowsServer",
|
199
|
-
"OSDiskName": "osdiskforwindowssimple",
|
200
|
-
"nicName": "myVMNic",
|
201
|
-
"addressPrefix": "10.0.0.0/16",
|
202
|
-
"subnetName": "Subnet",
|
203
|
-
"subnetPrefix": "10.0.0.0/24",
|
204
|
-
"storageAccountType": "Standard_LRS",
|
205
|
-
"publicIPAddressName": "myPublicIP",
|
206
|
-
"publicIPAddressType": "Dynamic",
|
207
|
-
"vmStorageAccountContainerName": "vhds",
|
208
|
-
"vmName": "windows-vm",
|
209
|
-
"vmSize": "[parameters('vmSize')]",
|
210
|
-
"virtualNetworkName": "MyVNET",
|
211
|
-
"vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
|
212
|
-
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]"
|
213
|
-
},
|
214
|
-
"resources": [
|
215
|
-
{
|
216
|
-
"type": "Microsoft.Storage/storageAccounts",
|
217
|
-
"name": "[parameters('newStorageAccountName')]",
|
218
|
-
"apiVersion": "2015-05-01-preview",
|
219
|
-
"location": "[variables('location')]",
|
220
|
-
"properties": {
|
221
|
-
"accountType": "[variables('storageAccountType')]"
|
222
|
-
}
|
223
|
-
},
|
224
|
-
{
|
225
|
-
"apiVersion": "2015-05-01-preview",
|
226
|
-
"type": "Microsoft.Network/publicIPAddresses",
|
227
|
-
"name": "[variables('publicIPAddressName')]",
|
228
|
-
"location": "[variables('location')]",
|
229
|
-
"properties": {
|
230
|
-
"publicIPAllocationMethod": "[variables('publicIPAddressType')]",
|
231
|
-
"dnsSettings": {
|
232
|
-
"domainNameLabel": "[parameters('dnsNameForPublicIP')]"
|
233
|
-
}
|
234
|
-
}
|
235
|
-
},
|
236
|
-
{
|
237
|
-
"apiVersion": "2015-05-01-preview",
|
238
|
-
"type": "Microsoft.Network/virtualNetworks",
|
239
|
-
"name": "[variables('virtualNetworkName')]",
|
240
|
-
"location": "[variables('location')]",
|
241
|
-
"properties": {
|
242
|
-
"addressSpace": {
|
243
|
-
"addressPrefixes": [
|
244
|
-
"[variables('addressPrefix')]"
|
245
|
-
]
|
246
|
-
},
|
247
|
-
"subnets": [
|
248
|
-
{
|
249
|
-
"name": "[variables('subnetName')]",
|
250
|
-
"properties": {
|
251
|
-
"addressPrefix": "[variables('subnetPrefix')]"
|
252
|
-
}
|
253
|
-
}
|
254
|
-
]
|
201
|
+
"description": "Publisher for the VM, e.g. Canonical, MicrosoftWindowsServer"
|
255
202
|
}
|
256
203
|
},
|
257
|
-
{
|
258
|
-
"apiVersion": "2015-05-01-preview",
|
259
|
-
"type": "Microsoft.Network/networkInterfaces",
|
260
|
-
"name": "[variables('nicName')]",
|
261
|
-
"location": "[variables('location')]",
|
262
|
-
"dependsOn": [
|
263
|
-
"[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]",
|
264
|
-
"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"
|
265
|
-
],
|
266
|
-
"properties": {
|
267
|
-
"ipConfigurations": [
|
268
|
-
{
|
269
|
-
"name": "ipconfig1",
|
270
|
-
"properties": {
|
271
|
-
"privateIPAllocationMethod": "Dynamic",
|
272
|
-
"publicIPAddress": {
|
273
|
-
"id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]"
|
274
|
-
},
|
275
|
-
"subnet": {
|
276
|
-
"id": "[variables('subnetRef')]"
|
277
|
-
}
|
278
|
-
}
|
279
|
-
}
|
280
|
-
]
|
281
|
-
}
|
282
|
-
},
|
283
|
-
{
|
284
|
-
"apiVersion": "2015-06-15",
|
285
|
-
"type": "Microsoft.Compute/virtualMachines",
|
286
|
-
"name": "[variables('vmName')]",
|
287
|
-
"location": "[variables('location')]",
|
288
|
-
"dependsOn": [
|
289
|
-
"[concat('Microsoft.Storage/storageAccounts/', parameters('newStorageAccountName'))]",
|
290
|
-
"[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
|
291
|
-
],
|
292
|
-
"properties": {
|
293
|
-
"hardwareProfile": {
|
294
|
-
"vmSize": "[variables('vmSize')]"
|
295
|
-
},
|
296
|
-
"osProfile": {
|
297
|
-
"computername": "[variables('vmName')]",
|
298
|
-
"adminUsername": "[parameters('adminUsername')]",
|
299
|
-
"adminPassword": "[parameters('adminPassword')]"
|
300
|
-
},
|
301
|
-
"storageProfile": {
|
302
|
-
"imageReference": {
|
303
|
-
"publisher": "[variables('imagePublisher')]",
|
304
|
-
"offer": "[variables('imageOffer')]",
|
305
|
-
"sku": "[parameters('windowsOSVersion')]",
|
306
|
-
"version": "latest"
|
307
|
-
},
|
308
|
-
"osDisk": {
|
309
|
-
"name": "osdisk",
|
310
|
-
"vhd": {
|
311
|
-
"uri": "[concat('http://',parameters('newStorageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('OSDiskName'),'.vhd')]"
|
312
|
-
},
|
313
|
-
"caching": "ReadWrite",
|
314
|
-
"createOption": "FromImage"
|
315
|
-
}
|
316
|
-
},
|
317
|
-
"networkProfile": {
|
318
|
-
"networkInterfaces": [
|
319
|
-
{
|
320
|
-
"id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"
|
321
|
-
}
|
322
|
-
]
|
323
|
-
},
|
324
|
-
"diagnosticsProfile": {
|
325
|
-
"bootDiagnostics": {
|
326
|
-
"enabled": "true",
|
327
|
-
"storageUri": "[concat('http://',parameters('newStorageAccountName'),'.blob.core.windows.net')]"
|
328
|
-
}
|
329
|
-
}
|
330
|
-
}
|
331
|
-
}
|
332
|
-
]
|
333
|
-
}
|
334
|
-
EOH
|
335
|
-
end
|
336
|
-
|
337
|
-
def linux_virtual_machine_deployment_template
|
338
|
-
# as per: https://github.com/Azure/azure-quickstart-templates/blob/master/101-simple-linux-vm/azuredeploy.json
|
339
|
-
<<-EOH
|
340
|
-
{
|
341
|
-
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
342
|
-
"contentVersion": "1.0.0.0",
|
343
|
-
"parameters": {
|
344
|
-
"location": {
|
204
|
+
"imageOffer": {
|
345
205
|
"type": "string",
|
206
|
+
"defaultValue": "UbuntuServer",
|
346
207
|
"metadata": {
|
347
|
-
"description": "
|
208
|
+
"description": "Offer for the VM, e.g. UbuntuServer, WindowsServer."
|
348
209
|
}
|
349
210
|
},
|
350
|
-
"
|
211
|
+
"imageSku": {
|
351
212
|
"type": "string",
|
213
|
+
"defaultValue": "14.04.3-LTS",
|
352
214
|
"metadata": {
|
353
|
-
"description": "
|
215
|
+
"description": "Sku for the VM, e.g. 14.04.3-LTS"
|
354
216
|
}
|
355
217
|
},
|
356
|
-
"
|
218
|
+
"imageVersion": {
|
357
219
|
"type": "string",
|
220
|
+
"defaultValue": "latest",
|
358
221
|
"metadata": {
|
359
|
-
"description": "
|
360
|
-
}
|
361
|
-
},
|
362
|
-
"adminUsername": {
|
363
|
-
"type": "string",
|
364
|
-
"metadata": {
|
365
|
-
"description": "User name for the Virtual Machine."
|
366
|
-
}
|
367
|
-
},
|
368
|
-
"adminPassword": {
|
369
|
-
"type": "securestring",
|
370
|
-
"metadata": {
|
371
|
-
"description": "Password for the Virtual Machine."
|
372
|
-
}
|
373
|
-
},
|
374
|
-
"dnsNameForPublicIP": {
|
375
|
-
"type": "string",
|
376
|
-
"metadata": {
|
377
|
-
"description": "Unique DNS Name for the Public IP used to access the Virtual Machine."
|
378
|
-
}
|
379
|
-
},
|
380
|
-
"ubuntuOSVersion": {
|
381
|
-
"type": "string",
|
382
|
-
"defaultValue": "14.04.2-LTS",
|
383
|
-
"allowedValues": [
|
384
|
-
"12.04.5-LTS",
|
385
|
-
"14.04.2-LTS",
|
386
|
-
"15.04"
|
387
|
-
],
|
388
|
-
"metadata": {
|
389
|
-
"description": "The Ubuntu version for the VM. This will pick a fully patched image of this given Ubuntu version. Allowed values: 12.04.5-LTS, 14.04.2-LTS, 15.04."
|
222
|
+
"description": "Either a date or latest."
|
390
223
|
}
|
391
224
|
}
|
392
225
|
},
|
393
226
|
"variables": {
|
394
227
|
"location": "[parameters('location')]",
|
395
|
-
"
|
396
|
-
"
|
397
|
-
"OSDiskName": "osdiskforlinuxsimple",
|
398
|
-
"nicName": "myVMNic",
|
228
|
+
"OSDiskName": "osdisk",
|
229
|
+
"nicName": "nic",
|
399
230
|
"addressPrefix": "10.0.0.0/16",
|
400
231
|
"subnetName": "Subnet",
|
401
232
|
"subnetPrefix": "10.0.0.0/24",
|
402
233
|
"storageAccountType": "Standard_LRS",
|
403
|
-
"publicIPAddressName": "
|
234
|
+
"publicIPAddressName": "publicip",
|
404
235
|
"publicIPAddressType": "Dynamic",
|
405
236
|
"vmStorageAccountContainerName": "vhds",
|
406
|
-
"vmName": "
|
237
|
+
"vmName": "vm",
|
407
238
|
"vmSize": "[parameters('vmSize')]",
|
408
|
-
"virtualNetworkName": "
|
239
|
+
"virtualNetworkName": "vnet",
|
409
240
|
"vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
|
410
241
|
"subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]"
|
411
242
|
},
|
@@ -498,10 +329,10 @@ module Kitchen
|
|
498
329
|
},
|
499
330
|
"storageProfile": {
|
500
331
|
"imageReference": {
|
501
|
-
"publisher": "[
|
502
|
-
"offer": "[
|
503
|
-
"sku": "[parameters('
|
504
|
-
"version": "
|
332
|
+
"publisher": "[parameters('imagePublisher')]",
|
333
|
+
"offer": "[parameters('imageOffer')]",
|
334
|
+
"sku": "[parameters('imageSku')]",
|
335
|
+
"version": "[parameters('imageVersion')]"
|
505
336
|
},
|
506
337
|
"osDisk": {
|
507
338
|
"name": "osdisk",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-azurerm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stuart Preston
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inifile
|
@@ -38,34 +38,6 @@ dependencies:
|
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.1.0
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: azure_mgmt_storage
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - '='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.1.0
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - '='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.1.0
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: azure_mgmt_compute
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 0.1.0
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 0.1.0
|
69
41
|
- !ruby/object:Gem::Dependency
|
70
42
|
name: azure_mgmt_network
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,6 +87,7 @@ executables: []
|
|
115
87
|
extensions: []
|
116
88
|
extra_rdoc_files: []
|
117
89
|
files:
|
90
|
+
- CHANGELOG.md
|
118
91
|
- LICENSE
|
119
92
|
- README.md
|
120
93
|
- lib/kitchen/driver/azurerm.rb
|
@@ -134,9 +107,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
107
|
version: '0'
|
135
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
109
|
requirements:
|
137
|
-
- - "
|
110
|
+
- - ">="
|
138
111
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
112
|
+
version: '0'
|
140
113
|
requirements: []
|
141
114
|
rubyforge_project:
|
142
115
|
rubygems_version: 2.4.4
|