Automatizar a validação do Azure Stack Hub com o PowerShell
A VaaS (validação como serviço) fornece a capacidade de automatizar a inicialização de testes usando o script RunVaaSAutomation.ps1 .
Esse script pode ser usado para:
- Instale os pré-requisitos.
- Instale e inicie o agente local.
- Inicie testes vaaS em fluxos de trabalho de aprovação de teste, validação de solução e validação de pacote.
- Relatar resultados do teste.
Os links a seguir contêm informações sobre como executar testes por meio do portal do VaaS. Antes de usar o script, você deve aprender sobre os parâmetros necessários e seus valores:
- Fluxo de Trabalho de SolutionValidation: validar uma nova solução do Azure Stack Hub
- Fluxo de trabalho packageValidation: validar pacotes OEM
- Fluxo de Trabalho do TestPass: Agendando um teste
Baixar os scripts de automação
Abra um prompt do PowerShell elevado.
Execute o script a seguir para baixar o script de automação:
# Review and update the $RootFolder parameter
$RootFolder = "c:\VaaS"
if (-not(Test-Path($RootFolder))) {
mkdir $RootFolder
}
Invoke-WebRequest -Uri https://storage.azurestackvalidation.com/packages/Microsoft.VaaS.Scripts.latest.nupkg -OutFile "$RootFolder\RunVaaSAutomation.zip"
Expand-Archive -Path "$RootFolder\RunVaaSAutomation.zip" -DestinationPath "$RootFolder\RunVaaSAutomation" -Force
Set-Location "$RootFolder\RunVaaSAutomation"
Iniciar o fluxo de trabalho de validação da solução
Para saber como executar o fluxo de trabalho de validação da solução por meio do portal do VaaS, consulte Validar pacotes OEM.
Execute o script a seguir com os valores de parâmetro apropriados:
# Review and update the following parameters
$VaaSAccountUserName = ""
$VaaSAccountPassword = ""
$VaaSAccountTenantId = ""
$ServiceAdminUserName = ""
$ServiceAdminPassword = ""
$TenantAdminUserName = ""
$TenantAdminPassword = ""
$CloudAdminUserName = ""
$CloudAdminPassword = ""
$SolutionName = ''
$ProjectName = ''
$DiagnosticsStorageConnection=''
$VaaSProject_SolutionValidation_Configuration='Min' # enter 'Min' or 'Max'
# No need to modify the following lines
Import-Module .\VaaSAutomation.psm1 -verbose -force
$stampInfo = Get-StampInfo -cloudAdminUserName $CloudAdminUserName -cloudAdminPassword $CloudAdminPassword -retryCount 3 -retryPeriod 30 -outputFolder "."
$AgentName = "$((Get-WmiObject win32_computersystem).DNSHostName).$((Get-WmiObject win32_computersystem).Domain)".ToLower()
$VaaSAccountCredentail = New-Object System.Management.Automation.PSCredential ($VaaSAccountUserName, (ConvertTo-SecureString $VaaSAccountPassword -AsPlainText -Force))
$testParameters = @{}
$projectParameters = @{
"Configuration" = $VaaSProject_SolutionValidation_Configuration;
}
$scriptParameters = @{
'VaaSAccountCredentail' = $VaaSAccountCredentail;
'VaaSAccountTenantId' = $VaaSAccountTenantId;
'VaaSSolutionName' = $SolutionName;
'VaaSProjectType' = 'SolutionValidation';
'VaaSProjectName' = $ProjectName;
'VaaSProjectParameterHashTable'= $projectParameters;
'VaaSTestFilter' = 'Test';
'VaaSTestFilterValue' = '';
'VaaSTestParameterHashTable'= $testParameters;
'VaaSOnPremAgentName'= $AgentName;
'MaxScriptWaitTimeInHours'=48;
'ServiceAdminUserName' = $ServiceAdminUserName;
'ServiceAdminPassword' = $ServiceAdminPassword;
'TenantAdminUserName' = $TenantAdminUserName;
'TenantAdminPassword' = $TenantAdminPassword;
'CloudAdminUserName' = $CloudAdminUserName;
'CloudAdminPassword' = $CloudAdminPassword;
'DiagnosticsStorageConnection' = $DiagnosticsStorageConnection;
}
& .\RunVaaSAutomation.ps1 @scriptParameters
Iniciar fluxo de trabalho de validação de pacote
Para saber como executar o fluxo de trabalho de validação de pacote por meio da porta VaaS, consulte Validar pacotes OEM.
Execute o script a seguir com os valores de parâmetro apropriados:
# Review and update the following parameters
$VaaSAccountUserName = ""
$VaaSAccountPassword = ""
$VaaSAccountTenantId = ""
$ServiceAdminUserName = ""
$ServiceAdminPassword = ""
$TenantAdminUserName = ""
$TenantAdminPassword = ""
$CloudAdminUserName = ""
$CloudAdminPassword = ""
$SolutionName = ''
$ProjectName = ''
$DiagnosticsStorageConnection=''
$VaaSProject_PackageValidation_PackageBlobUri=''
$VaaSProject_PackageValidation_RequireDigitalSignature = "false" # enter 'true' or 'false' string
$VaaSProject_PackageValidation_LocalPathtoAzureStackUpdatePkgs = ""
$VaaSProject_PackageValidation_LocalPathtoOEMUpdatePkgs = ""
# No need to modify the following lines
Import-Module .\VaaSAutomation.psm1 -verbose -force
$stampInfo = Get-StampInfo -cloudAdminUserName $CloudAdminUserName -cloudAdminPassword $CloudAdminPassword -retryCount 3 -retryPeriod 30 -outputFolder "."
$AgentName = "$((Get-WmiObject win32_computersystem).DNSHostName).$((Get-WmiObject win32_computersystem).Domain)".ToLower()
$VaaSAccountCredentail = New-Object System.Management.Automation.PSCredential ($VaaSAccountUserName, (ConvertTo-SecureString $VaaSAccountPassword -AsPlainText -Force))
$testParameters = @{
"RequireDigitalSignature" = $VaaSProject_PackageValidation_RequireDigitalSignature;
"LocalPathtoAzureStackUpdatePkgs" = $VaaSProject_PackageValidation_LocalPathtoAzureStackUpdatePkgs;
"LocalPathtoOEMUpdatePkgs" = $VaaSProject_PackageValidation_LocalPathtoOEMUpdatePkgs;
}
$projectParameters = @{
"PackageBlobUri" = $VaaSProject_PackageValidation_PackageBlobUri;
}
$scriptParameters = @{
'VaaSAccountCredentail' = $VaaSAccountCredentail;
'VaaSAccountTenantId' = $VaaSAccountTenantId;
'VaaSSolutionName' = $SolutionName;
'VaaSProjectType' = 'PackageValidation';
'VaaSProjectName' = $ProjectName;
'VaaSProjectParameterHashTable' = $projectParameters;
'VaaSTestFilter' = 'Test';
'VaaSTestFilterValue' = '';
'VaaSTestParameterHashTable'= $testParameters;
'VaaSOnPremAgentName'= $AgentName;
'MaxScriptWaitTimeInHours'=96;
'ServiceAdminUserName' = $ServiceAdminUserName;
'ServiceAdminPassword' = $ServiceAdminPassword;
'TenantAdminUserName' = $TenantAdminUserName;
'TenantAdminPassword' = $TenantAdminPassword;
'CloudAdminUserName' = $CloudAdminUserName;
'CloudAdminPassword' = $CloudAdminPassword;
'DiagnosticsStorageConnection' = $DiagnosticsStorageConnection;
}
& .\RunVaaSAutomation.ps1 @scriptParameters
Iniciar o fluxo de trabalho de aprovação de teste
Para saber como executar o fluxo de trabalho de aprovação de teste por meio da porta vaaS, consulte Agendando um teste.
Execute o script a seguir com os valores de parâmetro apropriados:
# Review and update the following parameters
$VaaSAccountUserName = ""
$VaaSAccountPassword = ""
$VaaSAccountTenantId = ""
$ServiceAdminUserName = ""
$ServiceAdminPassword = ""
$TenantAdminUserName = ""
$TenantAdminPassword = ""
$CloudAdminUserName = ""
$CloudAdminPassword = ""
$SolutionName = ''
$ProjectName = ''
$DiagnosticsStorageConnection=''
# No need to modify the following lines
# The following code is an example of running the "Cloud Simulation Engine" test
Import-Module .\VaaSAutomation.psm1 -verbose -force
$stampInfo = Get-StampInfo -cloudAdminUserName $CloudAdminUserName -cloudAdminPassword $CloudAdminPassword -retryCount 3 -retryPeriod 30 -outputFolder "."
$AgentName = "$((Get-WmiObject win32_computersystem).DNSHostName).$((Get-WmiObject win32_computersystem).Domain)".ToLower()
$VaaSAccountCredentail = New-Object System.Management.Automation.PSCredential ($VaaSAccountUserName, (ConvertTo-SecureString $VaaSAccountPassword -AsPlainText -Force))
$VaaSTestFilter='Test'
$VaaSTestFilterValue='cloudsimulation'
$testParameters = @{
'ServiceAdminUser' = $ServiceAdminUserName;
'ServiceAdminPassword' = $ServiceAdminPassword;
'TenantAdminUser' = $TenantAdminUserName;
'TenantAdminPassword' = $TenantAdminPassword;
'CloudAdminUser' = $CloudAdminUserName;
'CloudAdminPassword' = $CloudAdminPassword;
'DomainFQDN' = "";
'DomainAdminUser' = "";
'DomainAdminPassword' = "";
'TenantId' = $stampInfo.AadTenantId;
'ExternalFqdn' = $stampInfo.ExternalDomainFQDN;
'NumberOfNodes' = "$($stampInfo.NumberOfNodes)";
'Region' = $stampInfo.RegionName;
'RunDurationInHours' = 24;
'EnableSuBR' = "false";
'Faults' = "";
'Resources' = "";
'FaultControllerSettings' = "default";
'DiagnosticsStorageConnection' = $diagnosticsStorageConnection;
'DiagnosticsContainerName' = "$(New-Guid).ToString().ToLower()";
'MaxFiddlerCaptureSizeInMB' = "0";
'PackageHashCode' = "";
}
$projectParameters = @{}
$scriptParameters = @{
'VaaSAccountCredentail' = $VaaSAccountCredentail;
'VaaSAccountTenantId' = $VaaSAccountTenantId
'VaaSSolutionName' = $SolutionName;
'VaaSProjectType' = 'TestPass';
'VaaSProjectName' = $ProjectName;
'VaaSProjectParameterHashTable'= $projectParameters;
'VaaSTestFilter'= $VaaSTestFilter;
'VaaSTestFilterValue' = $VaaSTestFilterValue;
'VaaSTestParameterHashTable'= $testParameters;
'VaaSOnPremAgentName' = $AgentName;
'MaxScriptWaitTimeInHours' = 24;
'ServiceAdminUserName' = $ServiceAdminUserName;
'ServiceAdminPassword' = $ServiceAdminPassword;
'TenantAdminUserName' = $TenantAdminUserName;
'TenantAdminPassword' = $TenantAdminPassword;
'CloudAdminUserName' = $CloudAdminUserName;
'CloudAdminPassword' = $CloudAdminPassword;
'DiagnosticsStorageConnection' = $DiagnosticsStorageConnection;
}
& .\RunVaaSAutomation.ps1 @scriptParameters
Tabela de parâmetros
Para obter mais informações, consulte Parâmetros comuns do fluxo de trabalho.
Parâmetro | Descrição |
---|---|
VaaSAccountUserName | Seu nome de usuário do VaaS para o Portal do VaaS. |
VaaSAccountPassword | Sua senha do VaaS para o Portal do VaaS. |
VaaSAccountTenantId | Seu GUID de locatário do VaaS. |
ServiceAdminUserName | Sua conta de administrador de serviço do Azure Stack Hub. |
ServiceAdminPassword | Sua senha de serviço do Azure Stack Hub. |
TenantAdminUserName | O administrador do locatário primário. |
TenantAdminPassword | A senha do locatário primário. |
CloudAdminUserName | O nome de usuário do administrador de nuvem. |
CloudAdminPassword | A senha do administrador de nuvem. |
SolutionName | O nome da solução VaaS. |
ProjectName | O nome do fluxo de trabalho do VaaS. |
DiagnosticsStorageConnection | Uma URL SAS para uma conta de Armazenamento do Azure para a qual os logs de diagnóstico serão copiados durante a execução do teste. Para obter instruções sobre como gerar a URL sas, consulte Gerar o diagnóstico cadeia de conexão. |
Revise os resultados
Os logs de teste e os relatórios são salvos na pasta de trabalho atual.
Para obter outras opções, consulte Monitorar e gerenciar testes no portal do VaaS.
Próximas etapas
Para saber mais sobre o PowerShell no Azure Stack Hub, examine os módulos mais recentes.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de