|
1 | | -# AzureStack Canary validator |
2 | | -Canary validator provides a breadth customer experience with the Azure Stack deployment. It tries to exercise the various customer scenarios/usecases on the deployment. |
3 | | - |
4 | | -Instructions are relative to the .\CanaryValidator directory. |
5 | | -Canary can be invoked either as Service Administrator or Tenant Administrator. |
6 | | - |
7 | | -## Download Canary |
8 | | - |
9 | | -```powershell |
10 | | -Invoke-WebRequest https://github.com/Azure/AzureStack-Tools/archive/master.zip -OutFile master.zip |
11 | | -Expand-Archive master.zip -DestinationPath . -Force |
12 | | -Set-Location -Path ".\AzureStack-Tools-master\CanaryValidator" -PassThru |
13 | | -``` |
14 | | - |
15 | | -## To execute Canary as Tenant Administrator (if Windows Server 2016 or Windows Server 2012-R2 images are already present in the PIR) |
16 | | - |
17 | | -```powershell |
18 | | -# Install-Module -Name 'AzureRm.Bootstrapper' -Scope CurrentUser |
19 | | -# Install-AzureRmProfile -profile '2017-03-09-profile' -Force -Scope CurrentUser |
20 | | -# Install-Module -Name AzureStack -RequiredVersion 1.2.10 -Scope CurrentUser |
21 | | -$TenantAdminCreds = New-Object System.Management.Automation.PSCredential "<Tenant Admin username>", (ConvertTo-SecureString "<Tenant Admin password>" -AsPlainText -Force) |
22 | | -$ServiceAdminCreds = New-Object System.Management.Automation.PSCredential "<Service Admin username>", (ConvertTo-SecureString "<Service Admin password>" -AsPlainText -Force) |
23 | | -.\Canary.Tests.ps1 -TenantID "<TenantID from Azure Active Directory>" -AdminArmEndpoint "<Administrative ARM endpoint>" -ServiceAdminCredentials $ServiceAdminCreds -TenantArmEndpoint "<Tenant ARM endpoint>" -TenantAdminCredentials $TenantAdminCreds |
24 | | -``` |
25 | | - |
26 | | -## To execute Canary as Tenant Administrator (if Windows Server 2016 or Windows Server 2012-R2 images are not present in PIR) |
27 | | - |
28 | | -```powershell |
29 | | -# Download the WS2016 ISO image from: https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016, and place it on your local machine |
30 | | -# Install-Module -Name 'AzureRm.Bootstrapper' -Scope CurrentUser |
31 | | -# Install-AzureRmProfile -profile '2017-03-09-profile' -Force -Scope CurrentUser |
32 | | -# Install-Module -Name AzureStack -RequiredVersion 1.2.10 -Scope CurrentUser |
33 | | -$TenantAdminCreds = New-Object System.Management.Automation.PSCredential "<Tenant Admin username>", (ConvertTo-SecureString "<Tenant Admin password>" -AsPlainText -Force) |
34 | | -$ServiceAdminCreds = New-Object System.Management.Automation.PSCredential "<Service Admin username>", (ConvertTo-SecureString "<Service Admin password>" -AsPlainText -Force) |
35 | | -.\Canary.Tests.ps1 -TenantID "<TenantID from Azure Active Directory>" -AdminArmEndpoint "<Administrative ARM endpoint>" -ServiceAdminCredentials $ServiceAdminCreds -TenantArmEndpoint "<Tenant ARM endpoint>" -TenantAdminCredentials $TenantAdminCreds -WindowsISOPath "<path where the WS2016 ISO is present>" |
36 | | -``` |
37 | | - |
38 | | -## To execute Canary as Service Administrator |
39 | | - |
40 | | -```powershell |
41 | | -# Install-Module -Name 'AzureRm.Bootstrapper' -Scope CurrentUser |
42 | | -# Install-AzureRmProfile -profile '2017-03-09-profile' -Force -Scope CurrentUser |
43 | | -# Install-Module -Name AzureStack -RequiredVersion 1.2.10 -Scope CurrentUser |
44 | | -$ServiceAdminCreds = New-Object System.Management.Automation.PSCredential "<Service Admin username>", (ConvertTo-SecureString "<Service Admin password>" -AsPlainText -Force) |
45 | | -.\Canary.Tests.ps1 -TenantID "<TenantID from Azure Active Directory>" -AdminArmEndpoint "<Administrative ARM endpoint>" -ServiceAdminCredentials $ServiceAdminCreds |
46 | | -``` |
47 | | - |
48 | | -## To list the usecases in Canary |
49 | | - |
50 | | -```powershell |
51 | | -# Install-Module -Name 'AzureRm.Bootstrapper' -Scope CurrentUser |
52 | | -# Install-AzureRmProfile -profile '2017-03-09-profile' -Force -Scope CurrentUser |
53 | | -# Install-Module -Name AzureStack -RequiredVersion 1.2.10 -Scope CurrentUser |
54 | | -.\Canary.Tests.ps1 -ListAvailable |
55 | | -
|
56 | | -Sample output: |
57 | | -PS C:\AzureStack-Tools-vnext\CanaryValidator> .\Canary.Tests.ps1 -ListAvailable |
58 | | -List of scenarios in Canary: |
59 | | - CreateAdminAzureStackEnv |
60 | | - LoginToAzureStackEnvAsSvcAdmin |
61 | | - SelectDefaultProviderSubscription |
62 | | - ListFabricResourceProviderInfo |
63 | | - |--GetAzureStackInfraRole |
64 | | - |--GetAzureStackInfraRoleInstance |
65 | | - |--GetAzureStackLogicalNetwork |
66 | | - |--GetAzureStackStorageCapacity |
67 | | - |--GetAzureStackStorageShare |
68 | | - |--GetAzureStackScaleUnit |
69 | | - |--GetAzureStackScaleUnitNode |
70 | | - |--GetAzureStackIPPool |
71 | | - |--GetAzureStackMacPool |
72 | | - |--GetAzureStackGatewayPool |
73 | | - |--GetAzureStackSLBMux |
74 | | - |--GetAzureStackGateway |
75 | | - ListHealthResourceProviderAlerts |
76 | | - |--GetAzureStackAlert |
77 | | - ListUpdatesResourceProviderInfo |
78 | | - |--GetAzureStackUpdateSummary |
79 | | - |--GetAzureStackUpdateToApply |
80 | | - CreateTenantAzureStackEnv |
81 | | - CreateResourceGroupForTenantSubscription |
82 | | - CreateTenantPlan |
83 | | - CreateTenantOffer |
84 | | - CreateTenantDefaultManagedSubscription |
85 | | - LoginToAzureStackEnvAsTenantAdmin |
86 | | - CreateTenantSubscription |
87 | | - RoleAssignmentAndCustomRoleDefinition |
88 | | - |--ListAssignedRoles |
89 | | - |--ListExistingRoleDefinitions |
90 | | - |--GetProviderOperations |
91 | | - |--AssignReaderRole |
92 | | - |--VerifyReaderRoleAssignment |
93 | | - |--RemoveReaderRoleAssignment |
94 | | - |--CustomRoleDefinition |
95 | | - |--ListRoleDefinitionsAfterCustomRoleCreation |
96 | | - |--RemoveCustomRoleDefinition |
97 | | - RegisterResourceProviders |
98 | | - CreateResourceGroupForUtilities |
99 | | - CreateStorageAccountForUtilities |
100 | | - CreateStorageContainerForUtilities |
101 | | - CreateDSCScriptResourceUtility |
102 | | - CreateCustomScriptResourceUtility |
103 | | - CreateDataDiskForVM |
104 | | - UploadUtilitiesToBlobStorage |
105 | | - CreateKeyVaultStoreForCertSecret |
106 | | - CreateResourceGroupForVMs |
107 | | - DeployARMTemplate |
108 | | - RetrieveResourceDeploymentTimes |
109 | | - QueryTheVMsDeployed |
110 | | - CheckVMCommunicationPreVMReboot |
111 | | - AddDatadiskToVMWithPrivateIP |
112 | | - |--StopDeallocateVMWithPrivateIPBeforeAddingDatadisk |
113 | | - |--AddTheDataDiskToVMWithPrivateIP |
114 | | - |--StartVMWithPrivateIPAfterAddingDatadisk |
115 | | - ApplyDataDiskCheckCustomScriptExtensionToVMWithPrivateIP |
116 | | - |--CheckForExistingCustomScriptExtensionOnVMWithPrivateIP |
117 | | - |--ApplyCustomScriptExtensionToVMWithPrivateIP |
118 | | - RestartVMWithPublicIP |
119 | | - StopDeallocateVMWithPrivateIP |
120 | | - StartVMWithPrivateIP |
121 | | - CheckVMCommunicationPostVMReboot |
122 | | - CheckExistenceOfScreenShotForVMWithPrivateIP |
123 | | - EnumerateAllResources |
124 | | - DeleteVMWithPrivateIP |
125 | | - DeleteVMResourceGroup |
126 | | - DeleteUtilitiesResourceGroup |
127 | | - TenantRelatedcleanup |
128 | | - |--DeleteTenantSubscriptions |
129 | | - |--LoginToAzureStackEnvAsSvcAdminForCleanup |
130 | | - |--RemoveLinuxImageFromPIR |
131 | | - |--DeleteSubscriptionResourceGroup |
132 | | -``` |
133 | | - |
134 | | -## To exclude certain usecases from getting executed |
135 | | - |
136 | | -```powershell |
137 | | -# Install-Module -Name 'AzureRm.Bootstrapper' -Scope CurrentUser |
138 | | -# Install-AzureRmProfile -profile '2017-03-09-profile' -Force -Scope CurrentUser |
139 | | -# Install-Module -Name AzureStack -RequiredVersion 1.2.10 -Scope CurrentUser |
140 | | -# A new paramter called ExclusionList has been added which is a string array. Pass in the list of usecases you don't want to execute to this parameter. |
141 | | -$ServiceAdminCreds = New-Object System.Management.Automation.PSCredential "<Service Admin username>", (ConvertTo-SecureString "<Service Admin password>" -AsPlainText -Force) |
142 | | -.\Canary.Tests.ps1 -TenantID "<TenantID from Azure Active Directory>" -AdminArmEndpoint "<Administrative ARM endpoint>" -ServiceAdminCredentials $ServiceAdminCreds -ExclusionList "ListFabricResourceProviderInfo","ListUpdateResourceProviderInfo" |
143 | | -``` |
144 | | - |
145 | | -## Reading the results & logs |
146 | | - |
147 | | -Canary generates log files in the TMP directory ($env:TMP). The logs can be found under the directory "CanaryLogs[DATETIME]". There are two types of logs generated, a text log and a JSON log. JSON log provides a quick and easy view of all the usecases and their corresponding results. Text log provides a more detailed output of each usecase execution, its output and results. |
148 | | - |
149 | | -Each usecase entry in the JSON log consists of the following fields. |
150 | | - |
151 | | -- Name |
152 | | -- Description |
153 | | -- StartTime |
154 | | -- EndTime |
155 | | -- Result |
156 | | -- Exception (in case a scenario fails) |
157 | | - |
158 | | -The exception field is helpful to debug failed use cases. |
| 1 | +# AzureStack Canary validator |
| 2 | +Canary validator provides a breadth customer experience with the Azure Stack deployment. It tries to exercise the various customer scenarios/usecases on the deployment. |
| 3 | + |
| 4 | +Instructions are relative to the .\CanaryValidator directory. |
| 5 | +Canary can be invoked either as Service Administrator or Tenant Administrator. |
| 6 | + |
| 7 | +## Download Canary |
| 8 | + |
| 9 | +```powershell |
| 10 | +Invoke-WebRequest https://github.com/Azure/AzureStack-Tools/archive/master.zip -OutFile master.zip |
| 11 | +Expand-Archive master.zip -DestinationPath . -Force |
| 12 | +Set-Location -Path ".\AzureStack-Tools-master\CanaryValidator" -PassThru |
| 13 | +``` |
| 14 | + |
| 15 | +## To execute Canary as Tenant Administrator (if Windows Server 2016 or Windows Server 2012-R2 images are already present in the PIR) |
| 16 | + |
| 17 | +```powershell |
| 18 | +# Install-Module -Name 'AzureRm.Bootstrapper' |
| 19 | +# Install-AzureRmProfile -profile '2017-03-09-profile' -Force |
| 20 | +# Install-Module -Name AzureStack -RequiredVersion 1.2.10 |
| 21 | +$TenantAdminCreds = New-Object System.Management.Automation.PSCredential "<Tenant Admin username>", (ConvertTo-SecureString "<Tenant Admin password>" -AsPlainText -Force) |
| 22 | +$ServiceAdminCreds = New-Object System.Management.Automation.PSCredential "<Service Admin username>", (ConvertTo-SecureString "<Service Admin password>" -AsPlainText -Force) |
| 23 | +.\Canary.Tests.ps1 -TenantID "<TenantID from Azure Active Directory>" -AdminArmEndpoint "<Administrative ARM endpoint>" -ServiceAdminCredentials $ServiceAdminCreds -TenantArmEndpoint "<Tenant ARM endpoint>" -TenantAdminCredentials $TenantAdminCreds |
| 24 | +``` |
| 25 | + |
| 26 | +## To execute Canary as Tenant Administrator (if Windows Server 2016 or Windows Server 2012-R2 images are not present in PIR) |
| 27 | + |
| 28 | +```powershell |
| 29 | +# Download the WS2016 ISO image from: https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016, and place it on your local machine |
| 30 | +# Install-Module -Name 'AzureRm.Bootstrapper' |
| 31 | +# Install-AzureRmProfile -profile '2017-03-09-profile' -Force |
| 32 | +# Install-Module -Name AzureStack -RequiredVersion 1.2.10 |
| 33 | +$TenantAdminCreds = New-Object System.Management.Automation.PSCredential "<Tenant Admin username>", (ConvertTo-SecureString "<Tenant Admin password>" -AsPlainText -Force) |
| 34 | +$ServiceAdminCreds = New-Object System.Management.Automation.PSCredential "<Service Admin username>", (ConvertTo-SecureString "<Service Admin password>" -AsPlainText -Force) |
| 35 | +.\Canary.Tests.ps1 -TenantID "<TenantID from Azure Active Directory>" -AdminArmEndpoint "<Administrative ARM endpoint>" -ServiceAdminCredentials $ServiceAdminCreds -TenantArmEndpoint "<Tenant ARM endpoint>" -TenantAdminCredentials $TenantAdminCreds -WindowsISOPath "<path where the WS2016 ISO is present>" |
| 36 | +``` |
| 37 | + |
| 38 | +## To execute Canary as Service Administrator |
| 39 | + |
| 40 | +```powershell |
| 41 | +# Install-Module -Name 'AzureRm.Bootstrapper' |
| 42 | +# Install-AzureRmProfile -profile '2017-03-09-profile' -Force |
| 43 | +# Install-Module -Name AzureStack -RequiredVersion 1.2.10 |
| 44 | +$ServiceAdminCreds = New-Object System.Management.Automation.PSCredential "<Service Admin username>", (ConvertTo-SecureString "<Service Admin password>" -AsPlainText -Force) |
| 45 | +.\Canary.Tests.ps1 -TenantID "<TenantID from Azure Active Directory>" -AdminArmEndpoint "<Administrative ARM endpoint>" -ServiceAdminCredentials $ServiceAdminCreds |
| 46 | +``` |
| 47 | + |
| 48 | +## To list the usecases in Canary |
| 49 | + |
| 50 | +```powershell |
| 51 | +# Install-Module -Name 'AzureRm.Bootstrapper' |
| 52 | +# Install-AzureRmProfile -profile '2017-03-09-profile' -Force |
| 53 | +# Install-Module -Name AzureStack -RequiredVersion 1.2.10 |
| 54 | +.\Canary.Tests.ps1 -ListAvailable |
| 55 | +
|
| 56 | +Sample output: |
| 57 | +PS C:\AzureStack-Tools-vnext\CanaryValidator> .\Canary.Tests.ps1 -ListAvailable |
| 58 | +List of scenarios in Canary: |
| 59 | + CreateAdminAzureStackEnv |
| 60 | + LoginToAzureStackEnvAsSvcAdmin |
| 61 | + SelectDefaultProviderSubscription |
| 62 | + ListFabricResourceProviderInfo |
| 63 | + |--GetAzureStackInfraRole |
| 64 | + |--GetAzureStackInfraRoleInstance |
| 65 | + |--GetAzureStackLogicalNetwork |
| 66 | + |--GetAzureStackStorageCapacity |
| 67 | + |--GetAzureStackStorageShare |
| 68 | + |--GetAzureStackScaleUnit |
| 69 | + |--GetAzureStackScaleUnitNode |
| 70 | + |--GetAzureStackIPPool |
| 71 | + |--GetAzureStackMacPool |
| 72 | + |--GetAzureStackGatewayPool |
| 73 | + |--GetAzureStackSLBMux |
| 74 | + |--GetAzureStackGateway |
| 75 | + ListHealthResourceProviderAlerts |
| 76 | + |--GetAzureStackAlert |
| 77 | + ListUpdatesResourceProviderInfo |
| 78 | + |--GetAzureStackUpdateSummary |
| 79 | + |--GetAzureStackUpdateToApply |
| 80 | + CreateTenantAzureStackEnv |
| 81 | + CreateResourceGroupForTenantSubscription |
| 82 | + CreateTenantPlan |
| 83 | + CreateTenantOffer |
| 84 | + CreateTenantDefaultManagedSubscription |
| 85 | + LoginToAzureStackEnvAsTenantAdmin |
| 86 | + CreateTenantSubscription |
| 87 | + RoleAssignmentAndCustomRoleDefinition |
| 88 | + |--ListAssignedRoles |
| 89 | + |--ListExistingRoleDefinitions |
| 90 | + |--GetProviderOperations |
| 91 | + |--AssignReaderRole |
| 92 | + |--VerifyReaderRoleAssignment |
| 93 | + |--RemoveReaderRoleAssignment |
| 94 | + |--CustomRoleDefinition |
| 95 | + |--ListRoleDefinitionsAfterCustomRoleCreation |
| 96 | + |--RemoveCustomRoleDefinition |
| 97 | + RegisterResourceProviders |
| 98 | + CreateResourceGroupForUtilities |
| 99 | + CreateStorageAccountForUtilities |
| 100 | + CreateStorageContainerForUtilities |
| 101 | + CreateDSCScriptResourceUtility |
| 102 | + CreateCustomScriptResourceUtility |
| 103 | + CreateDataDiskForVM |
| 104 | + UploadUtilitiesToBlobStorage |
| 105 | + CreateKeyVaultStoreForCertSecret |
| 106 | + CreateResourceGroupForVMs |
| 107 | + DeployARMTemplate |
| 108 | + RetrieveResourceDeploymentTimes |
| 109 | + QueryTheVMsDeployed |
| 110 | + CheckVMCommunicationPreVMReboot |
| 111 | + AddDatadiskToVMWithPrivateIP |
| 112 | + |--StopDeallocateVMWithPrivateIPBeforeAddingDatadisk |
| 113 | + |--AddTheDataDiskToVMWithPrivateIP |
| 114 | + |--StartVMWithPrivateIPAfterAddingDatadisk |
| 115 | + ApplyDataDiskCheckCustomScriptExtensionToVMWithPrivateIP |
| 116 | + |--CheckForExistingCustomScriptExtensionOnVMWithPrivateIP |
| 117 | + |--ApplyCustomScriptExtensionToVMWithPrivateIP |
| 118 | + RestartVMWithPublicIP |
| 119 | + StopDeallocateVMWithPrivateIP |
| 120 | + StartVMWithPrivateIP |
| 121 | + CheckVMCommunicationPostVMReboot |
| 122 | + CheckExistenceOfScreenShotForVMWithPrivateIP |
| 123 | + EnumerateAllResources |
| 124 | + DeleteVMWithPrivateIP |
| 125 | + DeleteVMResourceGroup |
| 126 | + DeleteUtilitiesResourceGroup |
| 127 | + TenantRelatedcleanup |
| 128 | + |--DeleteTenantSubscriptions |
| 129 | + |--LoginToAzureStackEnvAsSvcAdminForCleanup |
| 130 | + |--RemoveLinuxImageFromPIR |
| 131 | + |--DeleteSubscriptionResourceGroup |
| 132 | +``` |
| 133 | + |
| 134 | +## To exclude certain usecases from getting executed |
| 135 | + |
| 136 | +```powershell |
| 137 | +# Install-Module -Name 'AzureRm.Bootstrapper' |
| 138 | +# Install-AzureRmProfile -profile '2017-03-09-profile' -Force |
| 139 | +# Install-Module -Name AzureStack -RequiredVersion 1.2.10 |
| 140 | +# A new paramter called ExclusionList has been added which is a string array. Pass in the list of usecases you don't want to execute to this parameter. |
| 141 | +$ServiceAdminCreds = New-Object System.Management.Automation.PSCredential "<Service Admin username>", (ConvertTo-SecureString "<Service Admin password>" -AsPlainText -Force) |
| 142 | +.\Canary.Tests.ps1 -TenantID "<TenantID from Azure Active Directory>" -AdminArmEndpoint "<Administrative ARM endpoint>" -ServiceAdminCredentials $ServiceAdminCreds -ExclusionList "ListFabricResourceProviderInfo","ListUpdateResourceProviderInfo" |
| 143 | +``` |
| 144 | + |
| 145 | +## Reading the results & logs |
| 146 | + |
| 147 | +Canary generates log files in the TMP directory ($env:TMP). The logs can be found under the directory "CanaryLogs[DATETIME]". There are two types of logs generated, a text log and a JSON log. JSON log provides a quick and easy view of all the usecases and their corresponding results. Text log provides a more detailed output of each usecase execution, its output and results. |
| 148 | + |
| 149 | +Each usecase entry in the JSON log consists of the following fields. |
| 150 | + |
| 151 | +- Name |
| 152 | +- Description |
| 153 | +- StartTime |
| 154 | +- EndTime |
| 155 | +- Result |
| 156 | +- Exception (in case a scenario fails) |
| 157 | + |
| 158 | +The exception field is helpful to debug failed use cases. |
0 commit comments