Guardar imagens personalizadas e distribuir para vários laboratórios
Este artigo dá-lhe os passos para guardar imagens personalizadas das máquinas virtuais (VMs) já criadas. Também aborda como distribuir estas imagens personalizadas para outros Laboratórios DevTest na organização.
Pré-requisitos
Os seguintes itens já devem estar implementados:
- Um laboratório do Image Factory em Azure DevTest Labs.
- Um Projeto de DevOps do Azure que é utilizado para automatizar a fábrica de imagens.
- Localização do código fonte que contém os scripts e a configuração (no nosso exemplo, no mesmo Projeto de DevOps mencionado no passo anterior).
- Crie a definição para orquestrar as tarefas de Azure PowerShell.
Se necessário, siga os passos na fábrica Executar uma fábrica de imagens a partir do Azure DevOps para criar ou configurar estes itens.
Guardar VMs como VHDs generalizados
Guarde as VMs existentes como VHDs generalizados. Existe um script do PowerShell de exemplo para guardar as VMs existentes como VHDs generalizados. Para utilizá-la, primeiro, adicione outra tarefa Azure PowerShell à definição de compilação, conforme mostrado na imagem seguinte:
Assim que tiver a nova tarefa na lista, selecione o item para que possamos preencher todos os detalhes, conforme mostrado na imagem seguinte:
Imagens personalizadas generalizadas vs. especializadas
No portal do Azure, ao criar uma imagem personalizada a partir de uma máquina virtual, pode optar por ter uma imagem personalizada generalizada ou especializada.
- Imagem personalizada especializada: O Sysprep/Deprovision não foi executado no computador. Significa que a imagem é uma cópia exata do Disco do SO na máquina virtual existente (um instantâneo). O novo computador tem os mesmos ficheiros, aplicações, contas de utilizador e nome de computador que esta imagem personalizada.
- Imagem Personalizada Generalizada: O Sysprep/Deprovision foi executado no computador. Este processo remove as contas de utilizador, remove o nome do computador e elimina as hives do registo de utilizadores. O objetivo é generalizar a imagem para que a possa personalizar ao criar outra máquina virtual. Quando generaliza uma máquina virtual ao executar sysprep, o processo destrói a máquina virtual atual. A máquina virtual atual já não está funcional.
O script para tirar imagens personalizadas no Image Factory guarda VHDs para todas as máquinas virtuais criadas no passo anterior. O script identifica os VHDs com base numa etiqueta no recurso no Azure.
Configuração de atualização para distribuir imagens
O próximo passo do processo é enviar as imagens personalizadas do laboratório de fábrica de imagens para quaisquer outros laboratórios que precisem delas. A parte principal deste processo é o ficheiro de configuração labs.json . Pode encontrar este ficheiro na pasta Configuração incluída na fábrica de imagens.
Existem dois elementos principais listados no ficheiro de configuração labs.json:
- Identificar exclusivamente um laboratório de destino específico com o ID da subscrição e o nome do laboratório.
- O conjunto específico de imagens que devem ser enviadas para o laboratório como caminhos relativos para a raiz de configuração. Também pode especificar a pasta inteira (para obter todas as imagens nessa pasta).
Eis um ficheiro labs.json de exemplo com dois laboratórios listados. Neste caso, está a distribuir 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 compilação
Com os mesmos passos que anteriormente neste artigo, adicione uma tarefa de compilação Azure PowerShell à definição de compilação. Preencha os detalhes conforme mostrado na imagem seguinte:
Os parâmetros são: -ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -SubscriptionId $(SubscriptionId) -DevTestLabName $(DevTestLabName) -maxConcurrentJobs 20
Esta tarefa utiliza todas as imagens personalizadas presentes na fábrica de imagens e envia-as para quaisquer laboratórios definidos no ficheiro Labs.json.
Colocar em fila a compilação
Assim que a tarefa de compilação de distribuição estiver concluída, coloque uma nova compilação em fila para garantir que está tudo a funcionar. Após a conclusão da compilação com êxito, as novas imagens personalizadas são apresentadas no laboratório de destino que introduziu no ficheiro de configuração Labs.json.
Passos seguintes
No artigo seguinte da série, atualize a fábrica de imagens com uma política de retenção e passos de limpeza: Defina a política de retenção e execute scripts de limpeza.