Como testar artefatos para o pacote de configuração de computador
O módulo do PowerShell GuestConfiguration inclui ferramentas para automatizar o teste de um pacote de configurações fora do Azure. Use essas ferramentas para encontrar problemas e iterar rapidamente antes de passar para o teste em um ambiente conectado do Azure ou do Arc.
Antes de começar a testar, você precisa configurar seu ambiente de criação e criar um artefato de pacote de configuração de máquina personalizado.
Importante
Os pacotes personalizados que auditam o estado de um ambiente e aplicam configurações estão no status de suporte Disponibilidade Geral (GA). No entanto, as seguintes limitações se aplicam:
Para usar pacotes de configuração de máquina que aplicam configurações, é necessária a extensão de configuração de convidado da VM do Azure versão 1.26.24 ou posterior, ou Arc agent 1.10.0 ou posterior.
O módulo GuestConfiguration está disponível apenas no Ubuntu 18 e posterior. No entanto, o pacote e as políticas produzidos pelo módulo podem ser usadas em qualquer distribuição/versão do Linux suportada no Azure ou no Arc.
Os pacotes de teste no macOS não estão disponíveis.
Você pode testar o pacote da sua estação de trabalho ou do ambiente de CI/CD (integração contínua e implantação contínua). O módulo GuestConfiguration inclui o mesmo agente para seu ambiente de desenvolvimento usado em computadores habilitados para Azure ou Arc. O agente inclui uma instância autônoma do PowerShell 7.1.3 para Windows e 7.2.0-preview.7 para Linux. A instância autônoma garante que o ambiente do script em que o pacote é testado seja consistente com os computadores que você gerencia usando a configuração de máquina.
O serviço de agente em computadores habilitados para Azure e Arc está em execução na conta LocalSystem
no Windows e no Root no Linux. Execute os comandos neste artigo em um contexto de segurança privilegiado para obter melhores resultados.
Para executar o PowerShell como LocalSystem
no Windows, use a ferramenta SysInternals PSExec.
Para executar o PowerShell como Root no Linux, utilize o comando sudo.
Validar se o pacote de configuração atende aos requisitos
Primeiro, teste se o pacote de configuração atende aos requisitos básicos usando Get-GuestConfigurationPackageComplianceStatus
. O comando verifica os requisitos de pacote a seguir.
- O MOF está presente e válido, no local certo
- Os módulos/dependências necessários estão presentes com a versão correta, sem duplicatas
- Validar se o pacote está assinado (opcional)
- Testar se
Test
eGet
retornam informações sobre o status de conformidade
Parâmetros do cmdlet Get-GuestConfigurationPackageComplianceStatus
:
- Caminho: caminho do arquivo ou da URI do pacote de configuração de computador.
- Parâmetro: parâmetros da política fornecidos como uma tabela hash.
Quando esse comando é executado pela primeira vez, o agente de configuração de computador é instalado no computador de teste no caminho C:\ProgramData\GuestConfig\bin
no Windows e /var/lib/GuestConfig/bin
no Linux. Esse caminho não está acessível a uma conta de usuário, portanto, o comando requer elevação.
Execute o seguinte comando para testar o pacote:
No Windows, de uma sessão elevada do PowerShell 7.
# Get the current compliance results for the local machine
Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip
No Linux, executando o PowerShell usando sudo.
# Get the current compliance results for the local machine
sudo pwsh -command 'Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip'
O comando emite um objeto que contém o status de conformidade e os detalhes por recurso.
complianceStatus resources
---------------- ---------
True @{BuiltInAccount=localSystem; ConfigurationName=MyConfig; …
Testar o pacote de configuração pode aplicar uma configuração
Por fim, se o modo de pacote de configuração for AuditandSet
, você poderá testar se o método Set
pode aplicar configurações a um computador local usando o comando Start-GuestConfigurationPackageRemediation
.
Importante
Esse comando tenta fazer alterações no ambiente local em que ele é executado.
Parâmetros do cmdlet Start-GuestConfigurationPackageRemediation
:
- Caminho: caminho completo do pacote de configuração de computador.
No Windows, de uma sessão elevada do PowerShell 7.
# Test applying the configuration to local machine
Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip
No Linux, executando o PowerShell usando sudo.
# Test applying the configuration to local machine
sudo pwsh -command 'Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip'
O comando retorna apenas a saída quando ocorrem erros. Para solucionar problemas de detalhes de eventos que acontecem durante Set
, use o parâmetro -verbose
.
Após executar o comando Start-GuestConfigurationPackageRemediation
, você pode executar o comando Get-GuestConfigurationComplianceStatus
novamente para confirmar que o computador está no estado correto agora.