Como testar artefatos do pacote de configuração da máquina
O módulo do PowerShell GuestConfiguration inclui ferramentas para automatizar o teste de um pacote de configuração 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 Arc.
Antes de começar o teste, 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 Geralmente Disponível (GA). No entanto, aplicam-se as seguintes limitações:
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 o agente Arc 1.10.0 ou posterior.
O módulo GuestConfiguration só está disponível no Ubuntu 18 e posterior. No entanto, o pacote e as políticas produzidas pelo módulo podem ser usados em qualquer distro/versão Linux suportada no Azure ou Arc.
Os pacotes de teste no macOS não estão disponíveis.
Você pode testar o pacote a partir de sua estação de trabalho ou do ambiente de integração contínua e implantação contínua (CI/CD). O módulo GuestConfiguration inclui o mesmo agente para seu ambiente de desenvolvimento que é usado dentro de máquinas habilitadas 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 de script onde o pacote é testado seja consistente com as máquinas que você gerencia usando a configuração da máquina.
O serviço de agente em máquinas habilitadas para Azure e Arc está sendo executado como a LocalSystem
conta no Windows e 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, use 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 . O comando verifica os seguintes requisitos de pacote.
- 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)
- Teste isso
Test
eGet
retorne informações sobre o status de conformidade
Parâmetros do Get-GuestConfigurationPackageComplianceStatus
cmdlet:
- Caminho: Caminho do arquivo ou URI do pacote de configuração da máquina.
- Parâmetro: Parâmetros de política fornecidos como uma tabela de hash.
Quando esse comando é executado pela primeira vez, o agente de configuração da máquina é instalado na máquina de teste no caminho C:\ProgramData\GuestConfig\bin
no Windows e /var/lib/GuestConfig/bin
no Linux. Esse caminho não é acessível a uma conta de usuário, portanto, o comando requer elevação.
Execute o seguinte comando para testar o pacote:
No Windows, a partir 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 gera a saída de 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
Finalmente, se o modo de pacote de configuração for AuditandSet
você pode testar se o método pode aplicar configurações a uma máquina local usando o Set
comando Start-GuestConfigurationPackageRemediation
.
Importante
Este comando tenta fazer alterações no ambiente local onde é executado.
Parâmetros do Start-GuestConfigurationPackageRemediation
cmdlet:
- Caminho: Caminho completo do pacote de configuração da máquina.
No Windows, a partir 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 só retorna a saída quando ocorrem erros. Para solucionar problemas de detalhes sobre eventos que ocorrem durante Set
o , use o -verbose
parâmetro.
Depois de executar o comando Start-GuestConfigurationPackageRemediation
, você pode executá-lo Get-GuestConfigurationComplianceStatus
novamente para confirmar que a máquina está agora no estado correto.