Configurar a política de retenção no Azure DevTest Labs
Este artigo aborda a definição de uma política de retenção, a limpeza da fábrica e a extinção de imagens antigas de todos os outros Laboratórios DevTest na organização.
Pré-requisitos
Certifique-se de que segue estes artigos antes de continuar:
- Criar uma fábrica de imagens
- Executar uma fábrica de imagens a partir do Azure DevOps
- Guardar imagens personalizadas e distribuir para vários laboratórios
Os seguintes itens já devem estar implementados:
- Um laboratório para a fábrica de imagens no Azure DevTest Labs
- Um ou mais Azure DevTest Labs de destino onde a fábrica irá distribuir imagens douradas
- Um Projeto de DevOps do Azure 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 utilizado acima)
- Uma definição de compilação para orquestrar as tarefas de Azure PowerShell
Definir a política de retenção
Antes de configurar os passos de limpeza, defina quantas imagens históricas pretende manter no DevTest Labs. Quando seguiu o artigo Executar uma fábrica de imagens a partir do Azure DevOps , configurou várias Variáveis de compilação. Um deles era ImageRetention. Defina esta variável como 1
, o que significa que o DevTest Labs não irá manter um histórico de imagens personalizadas. Só estarão disponíveis as imagens distribuídas mais recentes. Se alterar esta variável para 2
, a imagem distribuída mais recente e as anteriores serão mantidas. Pode definir este valor para definir o número de imagens históricas que pretende manter no Seu DevTest Labs.
Limpar a fábrica
O primeiro passo para limpar a fábrica é remover as VMs de Imagem douradas da fábrica de imagens. Existe um script para efetuar esta tarefa tal como os nossos scripts anteriores. O primeiro passo é adicionar outra tarefa de Azure PowerShell à definição de compilação, conforme mostrado na imagem seguinte:
Assim que tiver a nova tarefa na lista, selecione o item e preencha todos os detalhes, conforme mostrado na imagem seguinte:
Os parâmetros do script são: -DevTestLabName $(devTestLabName)
.
Extinguir imagens antigas
Esta tarefa remove quaisquer imagens antigas, mantendo apenas um histórico correspondente à variável de compilação ImageRetention . Adicione uma tarefa de compilação Azure PowerShell adicional à nossa definição de compilação. Depois de adicionada, selecione a tarefa e preencha os detalhes, conforme mostrado na imagem seguinte:
Os parâmetros do script são: -ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -SubscriptionId $(SubscriptionId) -DevTestLabName $(devTestLabName) -ImagesToSave $(ImageRetention)
Colocar em fila a compilação
Agora que concluiu a definição de compilação, coloque uma nova compilação em fila para garantir que está tudo a funcionar. Depois de concluída a compilação com êxito, as novas imagens personalizadas são apresentadas no laboratório de destino. Se verificar o laboratório de fábrica de imagens, não verá VMs aprovisionadas. Se colocar mais compilações em fila, verá as tarefas de limpeza a descontinuar imagens personalizadas antigas do DevTest Labs. A descontinuação está de acordo com o valor de retenção definido nas variáveis de compilação.
Nota
Se executou o pipeline de compilação no final do último artigo da série, elimine manualmente as máquinas virtuais que criou no laboratório de fábrica de imagens antes de fazer uma nova compilação em fila. Só precisa do passo de limpeza manual enquanto configura tudo e verifica se funciona.
Resumo
Agora, tem uma fábrica de imagens em execução que pode gerar e distribuir imagens personalizadas para os seus laboratórios a pedido. Neste momento, é apenas uma questão de configurar corretamente as suas imagens e identificar os laboratórios de destino. Conforme mencionado no artigo anterior, o ficheiro Labs.json localizado na pasta Configuração especifica as imagens que devem ser disponibilizadas em cada um dos laboratórios de destino. À medida que adiciona outros Laboratórios DevTest à sua organização, basta adicionar uma entrada no Labs.json para o novo laboratório.
Também é simples adicionar uma nova imagem à fábrica. Quando quiser incluir uma nova imagem na fábrica, abra a portal do Azure e navegue para o laboratório de fábrica. Selecione o botão para adicionar uma VM e escolha a imagem e os artefactos do marketplace que pretende. Em vez de selecionar o botão Criar para criar a nova VM, selecione Ver modelo do Azure Resource Manager. Guarde o modelo como um ficheiro .json algures na pasta GoldenImages no seu repositório. Da próxima vez que executar a fábrica de imagens, esta irá criar a sua imagem personalizada.
Passos seguintes
- Agende a compilação/versão para executar a fábrica de imagens periodicamente. Atualiza regularmente as imagens geradas pela fábrica.
- Crie mais imagens douradas para a sua fábrica. Também pode considerar criar artefactos para criar scripts de mais partes das tarefas de configuração da VM e incluir os artefactos nas imagens de fábrica.
- Crie uma compilação/versão separada para executar o script DistributeImages separadamente. Pode executar este script quando efetuar alterações ao Labs.json e obter imagens copiadas para laboratórios de destino sem ter de recriar todas as imagens novamente.