Como testar os artefatos para o pacote de configuração de convidado

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 do Arc.

Antes de começar a testar, siga todas as etapas na página Como configurar um ambiente de criação de configuração de convidado e Como criar artefatos de pacote de configuração de convidado personalizados para criar e publicar um pacote de configuração de convidado personalizado.

Importante

Pacotes personalizados que auditam o estado de um ambiente estão em Disponibilidade Geral, mas os pacotes que aplicam configurações estão em versão prévia. As seguintes limitações se aplicam:

Para usar os pacotes de configuração de convidado que aplicam configurações, é necessária a extensão de configuração de convidado da VM do Azure versão 1.29.24 ou posterior ou o agente Arc 1.10.0 ou posterior.

Para testar a criação e a aplicação de configurações no Linux, o módulo GuestConfiguration só está disponível no Ubuntu 18, mas o pacote e as políticas produzidos pelo módulo podem ser usados em qualquer distribuição/versão do Linux com suporte 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 o seu ambiente de desenvolvimento que é usado dentro de 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, portanto, o ambiente de script em que o pacote é testado será consistente com os computadores que você gerencia usando a configuração de convidado.

O serviço de agente em computadores habilitados para Azure e Arc está sendo executado como a conta "LocalSystem" no Windows e "Root" no Linux. Execute os comandos abaixo no contexto de segurança privilegiado para ter melhores resultados.

Para executar o PowerShell como "LocalSystem" Windows, use a ferramenta SysInternals PSExec.

Para executar o PowerShell como “Root” no Linux, use o comando Su.

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-GuestConfigurationPacakgeComplianceStatus . 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 e Get retornam informações sobre o status de conformidade

Parâmetros do cmdlet Get-GuestConfigurationPackageComplianceStatus :

  • Pacote: caminho do arquivo ou da URI do pacote de configuração de convidado.
  • Parâmetro: parâmetros de política fornecidos no formato de tabela de hash.

Quando esse comando é executado pela primeira vez, o agente de configuração de convidado é instalado no computador de teste no caminho c:\programdata\GuestConfig\bin no Windows e /var/lib/GuestConfig/binno 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 -Package ./MyConfig.zip

No Linux, executando o PowerShell usando sudo.

# Get the current compliance results for the local machine
sudo pwsh -command 'Get-GuestConfigurationPackageComplianceStatus -Package ./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; Credential=; Dependencies=System.Obje…

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:

  • Pacote: caminho completo do pacote de configuração de convidado.

No Windows, de uma sessão elevada do PowerShell 7.

# Test applying the configuration to local machine
Start-GuestConfigurationPackageRemediation -Package ./MyConfig.zip

No Linux, executando o PowerShell usando sudo.

# Test applying the configuration to local machine
sudo pwsh -command 'Start-GuestConfigurationPackageRemediation -Package ./MyConfig.zip'

O comando não retornará a saída, a menos que ocorram 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.

Próximas etapas