@@ -1080,4 +1080,191 @@ function Test-VirtualMachineTags
1080
1080
# Cleanup
1081
1081
Clean - ResourceGroup $rgname
1082
1082
}
1083
- }
1083
+ }
1084
+
1085
+ <#
1086
+ . SYNOPSIS
1087
+ Test Virtual Machines with VMAgent and AutoUpdate
1088
+ #>
1089
+ function Test-VirtualMachineWithVMAgentAutoUpdate
1090
+ {
1091
+ # Setup
1092
+ $rgname = Get-ComputeTestResourceName
1093
+
1094
+ try
1095
+ {
1096
+ # Common
1097
+ $loc = ' westus' ;
1098
+ New-AzureResourceGroup - Name $rgname - Location $loc ;
1099
+
1100
+ # VM Profile & Hardware
1101
+ $vmsize = ' Standard_A4' ;
1102
+ $vmname = ' vm' + $rgname ;
1103
+ $p = New-AzureVMConfig - VMName $vmname - VMSize $vmsize ;
1104
+ Assert-AreEqual $p.HardwareProfile.VirtualMachineSize $vmsize ;
1105
+
1106
+ # NRP
1107
+ $subnet = New-AzureVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
1108
+ $vnet = New-AzureVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - DnsServer " 10.1.1.1" - Subnet $subnet ;
1109
+ $vnet = Get-AzureVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
1110
+ $subnetId = $vnet.Subnets [0 ].Id;
1111
+ $pubip = New-AzurePublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
1112
+ $pubip = Get-AzurePublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
1113
+ $pubipId = $pubip.Id ;
1114
+ $nic = New-AzureNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
1115
+ $nic = Get-AzureNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
1116
+ $nicId = $nic.Id ;
1117
+
1118
+ $p = Add-AzureVMNetworkInterface - VM $p - Id $nicId ;
1119
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
1120
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
1121
+
1122
+ # Storage Account (SA)
1123
+ $stoname = ' sto' + $rgname ;
1124
+ $stotype = ' Standard_GRS' ;
1125
+ New-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
1126
+ $stoaccount = Get-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname ;
1127
+
1128
+ $osDiskName = ' osDisk' ;
1129
+ $osDiskCaching = ' ReadWrite' ;
1130
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
1131
+ $p = Set-AzureVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
1132
+
1133
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
1134
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
1135
+ Assert-AreEqual $p.StorageProfile.OSDisk.VirtualHardDisk.Uri $osDiskVhdUri ;
1136
+
1137
+ # OS & Image
1138
+ $user = " Foo12" ;
1139
+ $password = ' BaR@123' + $rgname ;
1140
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
1141
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
1142
+ $computerName = ' test' ;
1143
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
1144
+ $img = ' a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201503.01-en.us-127GB.vhd' ;
1145
+
1146
+ $p = Set-AzureVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred - ProvisionVMAgent - EnableAutoUpdate;
1147
+ $p = Set-AzureVMSourceImage - VM $p - Name $img ;
1148
+
1149
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
1150
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
1151
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
1152
+ Assert-AreEqual $p.StorageProfile.SourceImage.ReferenceUri (' /' + (Get-AzureSubscription - Current).SubscriptionId + ' /services/images/' + $img );
1153
+ Assert-Null $p.OSProfile.WindowsConfiguration.AdditionalUnattendContents " NULL" ;
1154
+
1155
+ # Virtual Machine
1156
+ # TODO: Still need to do retry for New-AzureVM for SA, even it's returned in Get-.
1157
+ New-AzureVM - ResourceGroupName $rgname - Location $loc - Name $vmname - VM $p ;
1158
+
1159
+ # Get VM
1160
+ $vm1 = Get-AzureVM - Name $vmname - ResourceGroupName $rgname ;
1161
+ Assert-AreEqual $vm1.Name $vmname ;
1162
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1 ;
1163
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
1164
+ Assert-AreEqual $vm1.StorageProfile.SourceImage.ReferenceUri (' /' + (Get-AzureSubscription - Current).SubscriptionId + ' /services/images/' + $img );
1165
+ Assert-AreEqual $vm1.OSProfile.AdminUsername $user ;
1166
+ Assert-AreEqual $vm1.OSProfile.ComputerName $computerName ;
1167
+ Assert-AreEqual $vm1.HardwareProfile.VirtualMachineSize $vmsize ;
1168
+
1169
+ # Remove
1170
+ Remove-AzureVM - Name $vmname - ResourceGroupName $rgname - Force;
1171
+ }
1172
+ finally
1173
+ {
1174
+ # Cleanup
1175
+ Clean - ResourceGroup $rgname
1176
+ }
1177
+ }
1178
+
1179
+ <#
1180
+ . SYNOPSIS
1181
+ Test Virtual Machines with VMAgent and AutoUpdate
1182
+ #>
1183
+ function Test-LinuxVirtualMachine
1184
+ {
1185
+ # Setup
1186
+ $rgname = Get-ComputeTestResourceName
1187
+
1188
+ try
1189
+ {
1190
+ # Common
1191
+ $loc = ' westus' ;
1192
+ New-AzureResourceGroup - Name $rgname - Location $loc ;
1193
+
1194
+ # VM Profile & Hardware
1195
+ $vmsize = ' Standard_A4' ;
1196
+ $vmname = ' vm' + $rgname ;
1197
+ $p = New-AzureVMConfig - VMName $vmname - VMSize $vmsize ;
1198
+ Assert-AreEqual $p.HardwareProfile.VirtualMachineSize $vmsize ;
1199
+
1200
+ # NRP
1201
+ $subnet = New-AzureVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
1202
+ $vnet = New-AzureVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - DnsServer " 10.1.1.1" - Subnet $subnet ;
1203
+ $vnet = Get-AzureVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
1204
+ $subnetId = $vnet.Subnets [0 ].Id;
1205
+ $pubip = New-AzurePublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
1206
+ $pubip = Get-AzurePublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
1207
+ $pubipId = $pubip.Id ;
1208
+ $nic = New-AzureNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
1209
+ $nic = Get-AzureNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
1210
+ $nicId = $nic.Id ;
1211
+
1212
+ $p = Add-AzureVMNetworkInterface - VM $p - Id $nicId ;
1213
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
1214
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
1215
+
1216
+ # Storage Account (SA)
1217
+ $stoname = ' sto' + $rgname ;
1218
+ $stotype = ' Standard_GRS' ;
1219
+ New-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
1220
+ $stoaccount = Get-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname ;
1221
+
1222
+ $osDiskName = ' osDisk' ;
1223
+ $osDiskCaching = ' ReadWrite' ;
1224
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
1225
+ $p = Set-AzureVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
1226
+
1227
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
1228
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
1229
+ Assert-AreEqual $p.StorageProfile.OSDisk.VirtualHardDisk.Uri $osDiskVhdUri ;
1230
+
1231
+ # OS & Image
1232
+ $user = " Foo12" ;
1233
+ $password = ' BaR@123' + $rgname ;
1234
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
1235
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
1236
+ $computerName = ' test' ;
1237
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
1238
+ $img = ' b4590d9e3ed742e4a1d46e5424aa335e__SUSE-Linux-Enterprise-Server-11-SP3-v206' ;
1239
+
1240
+ $p = Set-AzureVMOperatingSystem - VM $p - Linux - ComputerName $computerName - Credential $cred
1241
+ $p = Set-AzureVMSourceImage - VM $p - Name $img ;
1242
+
1243
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
1244
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
1245
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
1246
+ Assert-AreEqual $p.StorageProfile.SourceImage.ReferenceUri (' /' + (Get-AzureSubscription - Current).SubscriptionId + ' /services/images/' + $img );
1247
+
1248
+ # Virtual Machine
1249
+ # TODO: Still need to do retry for New-AzureVM for SA, even it's returned in Get-.
1250
+ New-AzureVM - ResourceGroupName $rgname - Location $loc - Name $vmname - VM $p ;
1251
+
1252
+ # Get VM
1253
+ $vm1 = Get-AzureVM - Name $vmname - ResourceGroupName $rgname ;
1254
+ Assert-AreEqual $vm1.Name $vmname ;
1255
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1 ;
1256
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
1257
+ Assert-AreEqual $vm1.StorageProfile.SourceImage.ReferenceUri (' /' + (Get-AzureSubscription - Current).SubscriptionId + ' /services/images/' + $img );
1258
+ Assert-AreEqual $vm1.OSProfile.AdminUsername $user ;
1259
+ Assert-AreEqual $vm1.OSProfile.ComputerName $computerName ;
1260
+ Assert-AreEqual $vm1.HardwareProfile.VirtualMachineSize $vmsize ;
1261
+
1262
+ # Remove
1263
+ Remove-AzureVM - Name $vmname - ResourceGroupName $rgname - Force;
1264
+ }
1265
+ finally
1266
+ {
1267
+ # Cleanup
1268
+ Clean - ResourceGroup $rgname
1269
+ }
1270
+ }
0 commit comments