Como criar artefactos de pacote de configuração de máquinas personalizadas

Nota

Azure Policy Configuração de Hóspedes chama-se Azure Automanage Machine Configuration. Saiba mais sobre o recente renomeamento dos serviços de gestão de configuração da Microsoft.

Antes de começar, é uma boa ideia ler a página geral para configuração da máquina.

Ao auditar/configurar tanto o Windows como o Linux, a configuração da máquina utiliza uma Desired State Configuration (DSC). A configuração DSC define a condição em que o computador deverá estar.

Importante

Os pacotes personalizados que auditam o estado de um ambiente estão geralmente disponíveis, mas os pacotes que aplicam configurações estão em pré-visualização. Aplicam-se as seguintes limitações:

Para utilizar pacotes de configuração de máquinas que apliquem configurações, é necessária a versão de extensão de configuração do hóspede Azure VM 1.29.24 ou posterior, ou o agente Arc 1.10.0 ou posterior.

Para testar a criação e aplicação de configurações no Linux, o GuestConfiguration módulo só está disponível no Ubuntu 18, mas o pacote e as políticas produzidas pelo módulo podem ser utilizados em qualquer versão linux/versão suportada em Azure ou Arc.

Não está disponível o teste de pacotes no MacOS.

Não utilize segredos ou informações confidenciais em pacotes de conteúdo personalizado.

Utilize os seguintes passos para criar a sua própria configuração para gerir o estado de uma máquina Azure ou não-Azure.

Instale os módulos PowerShell 7 e necessários

Em primeiro lugar, certifique-se de que seguiu todos os passos da página Como configurar um ambiente de autoria de configuração de máquina para instalar a versão necessária do PowerShell para o seu SISTEMA, o GuestConfiguration módulo e, se necessário, o módulo PSDesiredStateConfiguration.

Autor de uma configuração

Antes de criar um pacote de configuração, autore e compile uma configuração DSC. Se necessário, as configurações de exemplo estão disponíveis para Windows e Linux.

Importante

Ao compilar configurações para o Windows, utilize PSDesiredStateConfiguration a versão 2.0.5 (a versão estável). Ao compilar configurações para o Linux, instale a versão 3.0.0pré-lançamento .

Um exemplo é fornecido no documento DSC Getting iniciou para windows.

Para o Linux, terá de criar um módulo de recursos DSC personalizado utilizando as classes PowerShell. Um exemplo completo de um recurso e configuração personalizados está disponível (e foi testado com configuração de máquina) na página de docs PowerShell Escrevendo um recurso DSC personalizado com classes PowerShell.

Criar um artefacto de pacote de configuração

Uma vez compilados os ficheiros de suporte, os ficheiros de apoio devem ser embalados em conjunto. O pacote completo é utilizado pela configuração da máquina para criar as definições Azure Policy.

O New-GuestConfigurationPackage cmdlet cria o pacote. Os módulos que são necessários pela configuração devem estar disponíveis $Env:PSModulePath para o ambiente de desenvolvimento para que os comandos no módulo possam adicioná-los ao pacote.

Parâmetros do cmdlet ao New-GuestConfigurationPackage criar conteúdo do Windows:

  • Nome: nome do pacote de configuração da máquina.
  • Configuração: Documento de configuração DSC compilado no caminho completo.
  • Caminho: Caminho da pasta de saída. Este parâmetro é opcional. Se não for especificado, o pacote é criado no diretório atual.
  • Tipo: (Auditoria, AuditoriaandSet) Determina se a configuração deve apenas auditar ou se a configuração deve ser aplicada e alterar o estado da máquina. O padrão é "Auditoria".

Este passo não requer elevação. O cmdlet force é usado para substituir as embalagens existentes, se executar o comando mais de uma vez.

Os seguintes comandos criam um pacote de artefactos:

# Create a package that will only audit compliance
New-GuestConfigurationPackage `
  -Name 'MyConfig' `
  -Configuration './Config/MyConfig.mof' `
  -Type Audit `
  -Force
# Create a package that will audit and apply the configuration (Set)
New-GuestConfigurationPackage `
  -Name 'MyConfig' `
  -Configuration './Config/MyConfig.mof' `
  -Type AuditAndSet `
  -Force

Um objeto é devolvido com o Nome e Caminho do pacote criado.

Name      Path
----      ----
MyConfig  /Users/.../MyConfig/MyConfig.zip

Conteúdo esperado de um artefacto de configuração de máquina

O pacote completo é utilizado pela configuração da máquina para criar as definições Azure Policy. O pacote consiste em:

  • A configuração compilada do DSC como um MOF
  • Pasta de módulos
    • Módulo de Configuração de Hóspedes
    • Módulo DscNativeResources
    • Módulos de recursos DSC exigidos pela MOF
  • Um ficheiro metaconfig que armazena o pacote type e version

O cmdlet PowerShell cria o ficheiro .zip pacote. Não é necessária nenhuma pasta de nível de raiz ou pasta de versão. O formato do pacote deve ser um ficheiro .zip e não pode exceder um tamanho total de 100 MB quando não for comprimido.

Ampliação da configuração da máquina com ferramentas de terceiros

Os pacotes de artefactos para configuração da máquina podem ser estendidos para incluir ferramentas de terceiros. O alargamento da configuração da máquina requer o desenvolvimento de dois componentes.

  • Um recurso Desired State Configuration que lida com toda a atividade relacionada com a gestão da ferramenta de terceiros
    • Instalar
    • Invocar
    • Converter saída
  • Conteúdo no formato correto para a ferramenta consumir de forma nativa

O recurso DSC requer desenvolvimento personalizado se uma solução comunitária já não existir. As soluções comunitárias podem ser descobertas pesquisando o Galeria do PowerShell para a tag GuestConfiguration.

Nota

A extensibilidade da configuração da máquina é um cenário de "trazer a sua própria licença". Certifique-se de que cumpriu os termos e condições de quaisquer ferramentas de terceiros antes da utilização.

Depois de o recurso DSC ter sido instalado no ambiente de desenvolvimento, utilize o parâmetro FilesToInclude para New-GuestConfigurationPackage incluir conteúdo para a plataforma de terceiros no artefacto do conteúdo.

Passos seguintes