@@ -75,32 +75,44 @@ function Test-VirtualMachineProfile
75
75
$vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
76
76
$img = ' a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201503.01-en.us-127GB.vhd' ;
77
77
78
- $referenceUri = " /subscriptions/05cacd0c-6f9b-492e-b673-d8be41a7644f/resourceGroups/RgTest1/providers/Microsoft.KeyVault/vaults/TestVault123" ;
79
- $certStore = " My" ;
80
- $certUrl = " https://testvault123.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bdd703272" ;
81
- $vaultCert = New-AzureVaultCertificate - CertificateStore $certStore - CertificateUrl $certUrl ;
82
- $vaultSG = New-AzureVaultSecretGroup - ReferenceUri $referenceUri - VaultCertificates $vaultCert ;
83
-
84
- $aucSetting = " AutoLogon" ;
85
- $aucContent = " <UserAccounts><AdministratorPassword><Value>p@ssw0rd</Value><PlainText>true</PlainText></AdministratorPassword></UserAccounts>" ;
86
- $auc1 = New-AzureAdditionalUnattendContent - Content $aucContent - SettingName $aucSetting ;
87
- $auc2 = New-AzureAdditionalUnattendContent - Content $aucContent - SettingName $aucSetting ;
88
-
89
78
$winRMCertUrl = " http://keyVaultName.vault.azure.net/secrets/secretName/secretVersion" ;
90
79
$timeZone = " Pacific Standard Time" ;
91
80
$custom = " echo 'Hello World'" ;
92
81
$encodedCustom = " ZWNobyAnSGVsbG8gV29ybGQn" ;
93
82
94
- $p = Set-AzureVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred - CustomData $custom - Secrets $vaultSG - WinRMHttp - WinRMHttps - WinRMCertUrl $winRMCertUrl - ProvisionVMAgent - EnableAutoUpdate - TimeZone $timeZone - AdditionalUnattendContents $auc1 , $auc2 ;
83
+ $p = Set-AzureVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred - CustomData $custom - WinRMHttp - WinRMHttps - WinRMCertUrl $winRMCertUrl - ProvisionVMAgent - EnableAutoUpdate - TimeZone $timeZone ;
95
84
$p = Set-AzureVMSourceImage - VM $p - Name $img ;
96
-
85
+
86
+ $referenceUri = " /subscriptions/" + (Get-AzureSubscription - Current).SubscriptionId + " /resourceGroups/RgTest1/providers/Microsoft.KeyVault/vaults/TestVault123" ;
87
+ $certStore = " My" ;
88
+ $certUrl = " https://testvault123.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bdd703272" ;
89
+ $p = Add-AzureVMSecretConfig - VM $p - ReferenceUri $referenceUri - CertificateStore $certStore - CertificateUrl $certUrl ;
90
+
91
+ $referenceUri2 = " /subscriptions/" + (Get-AzureSubscription - Current).SubscriptionId + " /resourceGroups/RgTest1/providers/Microsoft.KeyVault/vaults/TestVault456" ;
92
+ $p = Add-AzureVMSecretConfig - VM $p - ReferenceUri $referenceUri2 - CertificateStore $certStore - CertificateUrl $certUrl ;
93
+
94
+ $certStore2 = " My2" ;
95
+ $certUrl2 = " https://testvault123.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" ;
96
+ $p = Add-AzureVMSecretConfig - VM $p - ReferenceUri $referenceUri - CertificateStore $certStore2 - CertificateUrl $certUrl2 ;
97
+
98
+ $aucSetting = " AutoLogon" ;
99
+ $aucContent = " <UserAccounts><AdministratorPassword><Value>p@ssw0rd</Value><PlainText>true</PlainText></AdministratorPassword></UserAccounts>" ;
100
+ $p = Add-AzureVMAdditionalUnattendContentConfig - VM $p - Content $aucContent - SettingName $aucSetting ;
101
+ $p = Add-AzureVMAdditionalUnattendContentConfig - VM $p - Content $aucContent - SettingName $aucSetting ;
102
+
97
103
Assert-AreEqual $p.OSProfile.AdminUsername $user ;
98
104
Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
99
105
Assert-AreEqual $p.OSProfile.AdminPassword $password ;
100
106
Assert-AreEqual $p.StorageProfile.SourceImage.ReferenceUri (' /' + (Get-AzureSubscription - Current).SubscriptionId + ' /services/images/' + $img );
101
107
Assert-AreEqual $p.OSProfile.Secrets [0 ].SourceVault.ReferenceUri $referenceUri ;
102
108
Assert-AreEqual $p.OSProfile.Secrets [0 ].VaultCertificates[0 ].CertificateStore $certStore ;
103
109
Assert-AreEqual $p.OSProfile.Secrets [0 ].VaultCertificates[0 ].CertificateUrl $certUrl ;
110
+ Assert-AreEqual $p.OSProfile.Secrets [0 ].SourceVault.ReferenceUri $referenceUri ;
111
+ Assert-AreEqual $p.OSProfile.Secrets [0 ].VaultCertificates[1 ].CertificateStore $certStore2 ;
112
+ Assert-AreEqual $p.OSProfile.Secrets [0 ].VaultCertificates[1 ].CertificateUrl $certUrl2 ;
113
+ Assert-AreEqual $p.OSProfile.Secrets [1 ].SourceVault.ReferenceUri $referenceUri2 ;
114
+ Assert-AreEqual $p.OSProfile.Secrets [1 ].VaultCertificates[0 ].CertificateStore $certStore ;
115
+ Assert-AreEqual $p.OSProfile.Secrets [1 ].VaultCertificates[0 ].CertificateUrl $certUrl ;
104
116
Assert-AreEqual $encodedCustom $p.OSProfile.CustomData ;
105
117
106
118
# Verify WinRM
@@ -126,14 +138,16 @@ function Test-VirtualMachineProfile
126
138
127
139
# Linux OS
128
140
$img = " b4590d9e3ed742e4a1d46e5424aa335e__SUSE-Linux-Enterprise-Server-11-SP3-v206" ;
129
- $sshPath = " /home/pstestuser/.ssh/authorized_keys" ;
130
- $sshPublicKey = " MIIDszCCApugAwIBAgIJALBV9YJCF/tAMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV" ;
131
-
132
- $sshKey = New-AzureSshPublicKey - KeyData $sshPublicKey - Path $sshPath ;
133
141
134
- $p = Set-AzureVMOperatingSystem - VM $p - Linux - ComputerName $computerName - Credential $cred - CustomData $custom - Secrets $vaultSG - SSHPublicKeys $sshKey - DisablePasswordAuthentication;
142
+ $p = Set-AzureVMOperatingSystem - VM $p - Linux - ComputerName $computerName - Credential $cred - CustomData $custom - DisablePasswordAuthentication;
135
143
$p = Set-AzureVMSourceImage - VM $p - Name $img ;
136
144
145
+ $sshPath = " /home/pstestuser/.ssh/authorized_keys" ;
146
+ $sshPublicKey = " MIIDszCCApugAwIBAgIJALBV9YJCF/tAMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV" ;
147
+ $p = Add-AzureVMSshPublicKeyConfig - VM $p - KeyData $sshPublicKey - Path $sshPath ;
148
+ $p = Add-AzureVMSshPublicKeyConfig - VM $p - KeyData $sshPublicKey - Path $sshPath ;
149
+ $p = Add-AzureVMSecretConfig - VM $p - ReferenceUri $referenceUri - CertificateStore $certStore - CertificateUrl $certUrl ;
150
+
137
151
Assert-AreEqual $p.OSProfile.AdminUsername $user ;
138
152
Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
139
153
Assert-AreEqual $p.OSProfile.AdminPassword $password ;
@@ -146,5 +160,7 @@ function Test-VirtualMachineProfile
146
160
# Verify SSH configuration
147
161
Assert-AreEqual $sshPublicKey $p.OSProfile.LinuxConfiguration.SshConfiguration.PublicKeys [0 ].KeyData;
148
162
Assert-AreEqual $sshPath $p.OSProfile.LinuxConfiguration.SshConfiguration.PublicKeys [0 ].Path;
163
+ Assert-AreEqual $sshPublicKey $p.OSProfile.LinuxConfiguration.SshConfiguration.PublicKeys [1 ].KeyData;
164
+ Assert-AreEqual $sshPath $p.OSProfile.LinuxConfiguration.SshConfiguration.PublicKeys [1 ].Path;
149
165
Assert-AreEqual $true $p.OSProfile.LinuxConfiguration.DisablePasswordAuthentication
150
166
}
0 commit comments