Salvar imagens personalizadas e distribuí-las para vários laboratórios
Este artigo fornece as etapas para salvar imagens personalizadas das VMs (máquinas virtuais) já criadas. Ele também aborda como distribuir essas imagens personalizadas para outros DevTest Labs na organização.
Pré-requisitos
Os seguintes itens já devem estar prontos:
- Um laboratório para a Fábrica de Imagens no Azure DevTest Labs.
- Um projeto do Azure DevOps usado para automatizar a fábrica de imagens.
- Local do código-fonte que contém os scripts e a configuração (em nosso exemplo, no mesmo projeto do DevOps mencionado na etapa anterior).
- Definição de build para orquestrar as tarefas do Microsoft Azure PowerShell.
Se necessário, siga as etapas em Executar uma fábrica de imagens do Azure DevOps para criar ou configurar esses itens.
Salvar VMs como VHDs generalizados
Salve as VMs existentes como VHDs generalizados. Há um exemplo de script do PowerShell para salvar as VMs existentes como VHDs generalizados. Para usá-lo, primeiro adicione outra tarefa do Azure PowerShell à definição de build, conforme mostrado na seguinte imagem:
Quando você tiver a nova tarefa na lista, selecione o item para que possamos preencher todos os detalhes, conforme mostrado na seguinte imagem:
Imagens personalizadas generalizadas vs. especializadas
No portal do Azure, ao criar uma imagem personalizada de uma máquina virtual, você poderá optar por ter uma imagem personalizada generalizada ou especializada.
- Imagem personalizada especializada: o Sysprep/Desprovisionamento NÃO foi executado no computador. Isso significa que a imagem é uma cópia exata do disco do sistema operacional na máquina virtual existente (um instantâneo). O novo computador tem os mesmos arquivos, aplicativos, contas de usuário e nome do computador como nesta imagem personalizada.
- Imagem personalizada generalizada: o Sysprep/Desprovisionamento foi executado no computador. Esse processo remove as contas de usuário, remove o nome do computador e retira os hives do registro do usuário. O objetivo é generalizar a imagem para que você possa personalizá-la ao criar outra máquina virtual. Quando você generaliza uma máquina virtual executando o sysprep, o processo destrói a máquina virtual atual. A máquina virtual atual não está mais funcional.
O script para ajustar imagens personalizadas no alocador de imagens salva VHDs para máquinas virtuais criadas na etapa anterior. O script identifica os VHDs com base em uma marca no recurso no Azure.
Atualizar a configuração para distribuir imagens
A próxima etapa do processo é efetuar push das imagens personalizadas do laboratório da fábrica de imagens para todos os outros laboratórios que precisam delas. A parte principal desse processo é o arquivo de configuração labs.jsno. Você pode encontrar esse arquivo na pasta Configuração incluída na fábrica de imagens.
Há dois aspectos principais listados no arquivo de configuração labs.json:
- Identificar exclusivamente um laboratório de destino específico usando a ID da assinatura e o nome do laboratório.
- O conjunto específico de imagens que deve ser enviado por push para o laboratório como caminhos relativos à raiz de configuração. Você também pode especificar a pasta inteira (para obter todas as imagens nessa pasta).
Aqui está um exemplo de arquivo labs.json com dois laboratórios listados. Neste caso, você está distribuindo imagens para dois laboratórios diferentes.
{
"Labs": [
{
"SubscriptionId": "<subscription ID that contains the lab>",
"LabName": "<Name of the DevTest Lab>",
"ImagePaths": [
"Win2012R2",
"Win2016/Datacenter.json"
]
},
{
"SubscriptionId": "<subscription ID that contains the lab>",
"LabName": "<Name of the DevTest Lab>",
"ImagePaths": [
"Win2016/Datacenter.json"
]
}
]
}
Criar uma tarefa de build
Usando as mesmas etapas indicadas anteriormente neste artigo, adicione uma tarefa de build do Azure PowerShell para criar a definição de build. Preencha os detalhes como mostra a seguinte imagem:
Os parâmetros são: -ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -SubscriptionId $(SubscriptionId) -DevTestLabName $(DevTestLabName) -maxConcurrentJobs 20
Essa tarefa usa qualquer imagem personalizada presente na fábrica de imagens e efetua push dela para os laboratórios definidos no arquivo Labs.json.
Colocar o build na fila
Quando a tarefa de compilação de distribuição for concluída, coloque um novo build na fila para verificar se tudo está funcionando. Depois que o build for concluído com êxito, as novas imagens personalizadas aparecerão no laboratório de destino que foi inserido no arquivo de configuração Labs.json.
Próximas etapas
No próximo artigo da série, você atualiza a fábrica de imagens com uma política de retenção e etapas de limpeza: Definir política de retenção e executar scripts de limpeza.