kitchen-azurerm 0.1.0.pre → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
[](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
|