Skip to content

Commit 09a4dc2

Browse files
hardcoded images
1 parent 9eb80c7 commit 09a4dc2

File tree

2 files changed

+99
-9
lines changed

2 files changed

+99
-9
lines changed

experiments/Compute.Experiments/AzureRM.Compute.Experiments.Tests.ps1

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ $clientSecret = ConvertTo-SecureString $credentials.clientSecret -AsPlainText -F
1010
$pscredentials = New-Object System.Management.Automation.PSCredential($credentials.applicationId, $clientSecret)
1111
Login-AzureRmAccount -ServicePrincipal -Credential $pscredentials -TenantId $credentials.tenantId | Out-Null
1212

13-
New-AzVm
13+
$vm = New-AzVm
14+
15+
$vm
1416

1517
# clean-up
16-
Remove-AzureRmResourceGroup -Name $resourceGroupName
18+
Remove-AzureRmResourceGroup -ResourceId $vm.resourceId

experiments/Compute.Experiments/AzureRM.Compute.Experiments.psm1

Lines changed: 95 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@ function New-AzVm {
44

55
PROCESS {
66
# Images
7+
<#
78
Write-Host "Load images..."
89
$jsonImages = Get-Content -Path "images.json" | ConvertFrom-Json
910
Write-Host "done"
11+
#>
1012

1113
# an array of @{ Type = ...; Name = ...; Image = ... }
12-
$images = $jsonImages.outputs.aliases.value.psobject.Properties | ForEach-Object {
14+
# $images = $jsonImages.outputs.aliases.value.psobject.Properties | ForEach-Object {
15+
$images = $staticImages.psobject.Properties | ForEach-Object {
1316
# e.g. "Linux"
1417
$type = $_.Name
1518
$_.Value.psobject.Properties | ForEach-Object {
@@ -25,7 +28,7 @@ function New-AzVm {
2528
}
2629

2730
# Find VM Image
28-
$vmImageName = "Win2012R2Datacenter"
31+
$vmImageName = "openSUSE-Leap" # "Win2012R2Datacenter"
2932
$vmImage = $images | Where-Object { $_.Name -eq $vmImageName } | Select-Object -First 1
3033

3134
Write-Host $vmImage
@@ -38,7 +41,7 @@ function New-AzVm {
3841

3942
# Resource Group
4043
$resourceGroupName = "resourceGroupTest"
41-
New-AzureRmResourceGroup -Name $resourceGroupName -Location $location
44+
$resource = New-AzureRmResourceGroup -Name $resourceGroupName -Location $location
4245

4346
# Virtual Network
4447
$virtualNetworkName = "virtualNetworkTest"
@@ -106,17 +109,20 @@ function New-AzVm {
106109
$vmComputer = $vm.Name
107110
$vmComputerPassword = "E5v7e9!@%f";
108111
$vmComputerUser = "special";
112+
$password = ConvertTo-SecureString $vmComputerPassword -AsPlainText -Force;
113+
$cred = New-Object System.Management.Automation.PSCredential ($vmComputerUser, $password);
109114
switch ($vmImage.Type) {
110115
"Windows" {
111-
$password = ConvertTo-SecureString $vmComputerPassword -AsPlainText -Force;
112-
$cred = New-Object System.Management.Automation.PSCredential ($vmComputerUser, $password);
113116
$vmConfig = $vmConfig | Set-AzureRmVMOperatingSystem `
114117
-Windows `
115118
-ComputerName $vmComputer `
116119
-Credential $cred
117120
}
118121
"Linux" {
119-
122+
$vmConfig = $vmConfig | Set-AzureRmVMOperatingSystem `
123+
-Linux `
124+
-ComputerName $vmComputer `
125+
-Credential $cred
120126
}
121127
}
122128

@@ -130,8 +136,90 @@ function New-AzVm {
130136
-Version $vmImageImage.version `
131137
| Add-AzureRmVMNetworkInterface -Id $networkInterface.Id
132138

133-
New-AzureRmVm -ResourceGroupName $resourceGroupName -Location $location -VM $vmConfig
139+
New-PsObject @{
140+
ResourceId = $resource.ResourceId;
141+
Response = New-AzureRmVm -ResourceGroupName $resourceGroupName -Location $location -VM $vmConfig
142+
}
134143
}
135144
}
136145

146+
function New-PsObject {
147+
param([hashtable] $property)
148+
149+
New-Object psobject -Property $property
150+
}
151+
152+
$staticImages = New-PsObject @{
153+
Linux = New-PsObject @{
154+
CentOS = New-PsObject @{
155+
publisher = "OpenLogic";
156+
offer = "CentOS";
157+
sku = "7.3";
158+
version = "latest";
159+
};
160+
CoreOS = New-PsObject @{
161+
publisher = "CoreOS";
162+
offer = "CoreOS";
163+
sku = "Stable";
164+
version = "latest";
165+
};
166+
Debian = New-PsObject @{
167+
publisher = "credativ";
168+
offer = "Debian";
169+
sku = "8";
170+
version = "latest";
171+
};
172+
"openSUSE-Leap" = New-PsObject @{
173+
publisher = "SUSE";
174+
offer = "openSUSE-Leap";
175+
sku = "42.2";
176+
version = "latest";
177+
};
178+
RHEL = New-PsObject @{
179+
publisher = "RedHat";
180+
offer = "RHEL";
181+
sku = "7.3";
182+
version = "latest";
183+
};
184+
SLES = New-PsObject @{
185+
publisher = "SUSE";
186+
offer = "SLES";
187+
sku = "12-SP2";
188+
version = "latest";
189+
};
190+
UbuntuLTS = New-PsObject @{
191+
publisher = "Canonical";
192+
offer = "UbuntuServer";
193+
sku = "16.04-LTS";
194+
version = "latest";
195+
};
196+
};
197+
Windows = New-PsObject @{
198+
Win2016Datacenter = New-PsObject @{
199+
publisher = "MicrosoftWindowsServer";
200+
offer = "WindowsServer";
201+
sku = "2016-Datacenter";
202+
version = "latest";
203+
};
204+
Win2012R2Datacenter = New-PsObject @{
205+
publisher = "MicrosoftWindowsServer";
206+
offer = "WindowsServer";
207+
sku = "2012-R2-Datacenter";
208+
version = "latest";
209+
};
210+
Win2012Datacenter = New-PsObject @{
211+
publisher = "MicrosoftWindowsServer";
212+
offer = "WindowsServer";
213+
sku = "2012-Datacenter";
214+
version = "latest";
215+
};
216+
Win2008R2SP1 = New-PsObject @{
217+
publisher = "MicrosoftWindowsServer";
218+
offer = "WindowsServer";
219+
sku = "2008-R2-SP1";
220+
version = "latest";
221+
};
222+
};
223+
}
224+
137225
Export-ModuleMember -Function New-AzVm

0 commit comments

Comments
 (0)