Com o crescimento contínuo do uso de tecnologia em nuvem, onde diversas empresas estão migrando totalmente ou parcialmente seus workloads, o trabalho remoto se tornou uma modalidade irreversível no cenário atual. Para garantir a segurança quando o colaborador estiver realizando suas atividades em home office podemos oferecer um ambiente de trabalho virtual, esse recurso no Azure chama-se Azure Virtual Desktop ou AVD (anteriormente chamado de WVD – Windows Virtual Desktop).
Antigamente os administradores de TI/Infra tinham a difícil tarefa de padronizar uma imagem a todos os colaboradores e disponibiliza-las com todos os programas e configurações customizadas em seus equipamentos locais. Mas como isso se reflete em uma máquina virtual (VM)? Seguindo praticamente os mesmos passos! Só que agora disponibilizadas de forma mais simples e tranquila através de uma galeria de imagem no Azure.
Neste artigo exploraremos as melhores práticas em como criar uma Golden Image contendo o Sistema Operacional Windows 11 Enterprise multi-session para ser utilizada como uma imagem padrão em AVD (Azure Virtual Desktop), garantindo maior segurança e disponibilizando todos os softwares necessários para que o colaborador realize suas atividades. Para melhores resultados e utilização desta imagem de forma compartilhada para comportar múltiplas VMs, preferencialmente estaremos utilizando este modelo de “Multi-session” disponibilizada pelo Azure para usar em um HOST POOL do modelo POOLED.
Já sei, já sei, chega de intro… PARTIU CRIAR ESSA GOLDEN IMAGE? Segue abaixo os pré-requisitos mínimos:
- Possuir permissão de no mínimo Contributor da Subscription;
- Utilizar uma VM no Azure com versão com o Sistema Operacional contendo “Multi-session”, preferencialmente na última versão de build;
- Realizar todas as atualizações pendentes;
- Desabilitar as Atualizações Automáticas;
- Instalar todos os programas necessários e opcionais (Ex.: Microsoft Office);
- Efetuar um snapshot do disco após as etapas de atualização;
- Realizar o sysprep com a função GENERALIZAR e DESLIGAR.
Passo 1
Dentro do Portal do Azure, vamos criar os recursos básicos como um Resource Group (RG) e uma Virtual Network (VNET) para alocarmos a VM com a Golden Image, nesse momento deixaremos as configurações padrões:
Obs1: Não possui uma conta? Fiquem tranquilos! Vejam este vídeo no YouTube – Como criar sua conta Trial no Azure – 2024 onde o Raphael Andrade gravou com muitas dicas e com um passo a passo muito detalhado de como criar uma conta trial!
Passo 2
Vamos agora realizar a criação da VM que será utilizada para a Golden Image, usaremos o RG e VNET criados acima e selecionaremos a imagem “Windows 11 Enterprise multi-session, version 22H2 – x64 Gen 2“, pois essa imagem já contemplará do pacote Office instalado através do processo C2R (Click-to-Run).
Caso não apareça como itens recentes ou mesmo no marketplace de imagens, clique em “See all images” e busque por Microsoft 365. Clique em ‘Select‘ e busque a imagem informada acima:
Como este laboratório também precisamos pensar em economia aplicando FinOps, utilizaremos a família de VM “B” – Standard_B2s com 2 vCPUs e 4 GB de RAM.
Obs2: Não iremos abordar a criação completa da VM já que nosso amigo Leonardo escreveu com uma riqueza em detalhes neste artigo: Crie sua primeira Máquina Virtual no Azure usando uma conta gratuita.
Passo 3
Agora com a ‘vm-golden-image‘ criada com sucesso, vamos acessa-la remotamente através do IP público gerado no ato da criação para instalarmos alguns programas nela (simulando uma customização de ambiente).
Esta é uma etapa que exige uma atenção redobrada visando a customização de seus aplicativos e programas a serem utilizados na Golden Image, por isso é importante fazer todo o levantamento interno de quais aplicativos serão de fato necessário para ter nesta imagem, sempre pensando no esforço administrativo que será já estando em produção e receber uma notificação que muitos ou todos estão com falta de alguns programas importantes:
Passo 4
Este é um dos passos mais importantes (na minha opinião) em todos os processos de customização: BAIXAR E CONFIGURAR O ‘LANGUAGE PACK‘ (Neste caso estarei utilizando PT-BR).
4.1 – Abaixo estarei listando as documentações e o que precisa ser feito o download POR DENTRO DA VM e não através da sua máquina:
ISO de Idioma e Recursos Opcionais do Windows 11, versões 22H2 e 23H2 | https://software-static.download.prss.microsoft.com/dbazure/988969d5-f34g-4e03-ac9d-1f9786c66749/22621.1.220506-1250.ni_release_amd64fre_CLIENT_LOF_PACKAGES_OEM.iso |
ISO do aplicativos da caixa de entrada do Windows 11, versões 22H2 e 23H2 | https://software-static.download.prss.microsoft.com/dbazure/888969d5-f34g-4e03-ac9d-1f9786c66749/22621.2501.231009-1937.ni_release_svc_prod3_amd64fre_InboxApps.iso |
4.2 – Agora precisamos criar uma estrutura de ‘File Share‘ através de um ‘Storage Account‘ servindo como um repositório para armazenar os pacotes de idioma e recursos, pois será através desse armazenamento que as VMs terão acesso a realizar o download e configurar corretamente os pacotes.
Neste momento não iremos focar nas configurações do Storage Account, mas colocaremos abaixo como iremos deixá-lo configurado para esta configuração.
BASIC
- Resource group – rg-golden-image
- Storage account name (ESTE NOME DEVERÁ SER ÚNICO) – Sugestão: stolangpack01
- Region – (US) East US
- Performance – Standard
- Redundancy – Locally-redundant storage (LRS)
ADVANCED
- Manteremos tudo como está por default
NETWORKING
- Neste momento utilizaremos acesso público ao Storage, em um próximo artigo abordaremos o uso de conexões privadas utilizando Private Endpoint.
DATA PROTECTION
- Por padrão o ‘Soft-Delete’ está habilitado para evitar a perda total de dados ao deletar, contudo para este recurso não será necessário. Portanto podemos desabilitar todos eles: “Enable soft delete for blobs” | “Enable soft delete for containers” | “Enable soft delete for file shares“
ENCRYPTION
- Manteremos tudo como está por default
Ao final da instalação pode clicar em “GO TO RESOURCE” para criarmos um File Share (Lembrando que nesse momento criamos apenas a estrutura do Storage Account).
Vamos clicar em File Share e depois +File Share:
Obs3: Esse nome não precisa ser um nome único, portanto podem utilizar o mesmo do print.
Desmarque a opção de backup, pois nesse momento não queremos criar um Recovery Services Vault para efetuar os backups dessa estrutura:
4.3 – Com o File Share criado agora vamos conectar por dentro da vm-golden-image utilizando o script fornecido no portal do Azure.
Na página do File Share chamado language-pack clique em CONNECT e peça para mostrar o script através do SHOW SCRIPT e copie todo o conteúdo clicando em Copy to clipboard:
Agora por dentro da VM, vamos abrir o PowerShell SEM SER ADMINISTRADOR, no menu iniciar busque por powershell:
Cole o script simplesmente clicando com o botão direito dentro da tela do Powershell. Ao ser questionado com uma tela de alerta, selecione “PASTE ANYWAY“, ao final do script você pode pressionar a tecla ENTER no teclado:
Vamos conferir se o mapeamento foi feito com sucesso:
Agora com a unidade mapeada com sucesso na unidade ‘Z:\‘, podemos fechar a janela do Powershell.
4.4 – Nesse momento com as ISOs já baixadas em sua VM, já podemos montá-las para copiar os arquivos necessários para a unidade mapeada ‘language-pack’:
- Na unidade “DVD Drive (Letra:) CLIENT_FOD_LP_xxxx” iremos copiar TODO o conteúdo da pasta “LanguagesAndOptionalFeatures” para a raiz da unidade mapeada ‘language-pack‘:
- Na unidade “DVD Drive (Letra:) IA_MULFRE_xxxx” iremos copiar TODO o conteúdo da pasta “packages” para a raiz da unidade mapeada ‘language-pack‘:
4.5 – Com os arquivos devidamente copiados começaremos a configurar o script (disponibilizado logo abaixo) que já está customizado para uso com a unidade mapeada na unidade ‘Z:\‘ e com a linguagem em ‘PT-BR‘.
Você poderá abri-lo em uma nova aba ou fazer o download:
Copie todo o script do arquivo ‘AddLanguage_Windows11.txt‘ e cole no Powershell ISE (AGORA VAMOS ABRIR COMO ADMINISTRADOR):
Agora com tudo pronto podemos clicar no ícone de ‘play verdinho‘ ou utilizar a tecla F5 no teclado para executarmos o script por completo.
Este processo irá ocorrer em torno de 30 a 45 minutos para finalizar.
Você receberá uma notificação ao fim contendo 2 erros ou mais referente a alguns KBs, não se preocupe! Isso é uma informação que a VM ainda não foi atualizada utilizando o Windows Update:
Obs4: Após a execução do script ele solicita que seja feito o logoff ou mesmo a reinicialização da VM para que as alterações sejam aplicadas com sucesso, nesse momento NÃO IREMOS REALIZAR ESTE PROCESSO, pois ainda temos mais alguns passos finais.
4.6 – E por último, mas não menos importante, estaremos executando alguns comandos de ajustes de acordo com melhores práticas abaixo:
- Redirecionamento de Fuso Horário:
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fEnableTimeZoneRedirection /t REG_DWORD /d 1 /f
- Desabilitar Storage Sense:
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" /v 01 /t REG_DWORD /d 0 /f
- Desabilitar Windows Update Automático
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /t REG_DWORD /d 1 /f
Basta copiá-los e executar no próprio Powershell ISE aberto (lembre-se de copiar e executar um a um):
Finalizado esses pontos podemos fechar o Powershell ISE.
Passo 5
Está quase tudo pronto para encapsularmos essa Golden Image, porém acima foi mencionado que ainda não fizemos as devidas atualizações através do Windows Update não é mesmo? Portanto é de suma importância estas atualizações antes mesmo de realizarmos um snapshot e posteriormente a captura da VM.
No campo de pesquisa ao lado do menu iniciar podemos buscar por ‘updates‘ e clicar em CHECK FOR UPDATES. Em seguida clicaremos em Check for updates:
Este processo requer atenção e paciência, pois dependendo do momento em que estiver efetuando estas atualizações, o Windows Update solicitará que efetue a reinicialização da VM algumas vezes.
Em seguida na mesma janela de sistema, acesse ‘Time & language‘ > Language & region > Windows display language e clique na caixinha onde está ‘English (Unites States)‘ e valide se está aparecendo ‘Português (Brasil)‘:
Caso ainda não esteja aparecendo, o motivo se deve a não reinicialização. Efetue um restart na VM e repita os passos.
Ao selecionar ‘Português (Brasil)‘ aparecerá uma mensagem solicitando que efetue um sign out, faça o sign out e acesse novamente a VM para identificar se as mudanças de idioma ocorreram com sucesso:
Passo 6
A Golden Image está praticamente pronta! Mas antes de capturarmos ela precisamos ter uma cópia de segurança para alguma intervenção ou ajustes que precisariam ser feitos anteriormente.
Para isso iremos criar um SNAPSHOT do disco onde está armazenado o Sistema Operacional da VM. Como uma boa prática de mantermos o equipamento em funcionamento, retornaremos ao Portal do Azure, navegaremos até a VM e clicamos em STOP para que aconteça uma parada TOTAL desta.
Na mesma página da vm-golden-image, no menu ao lado esquerdo encontraremos o item DISK:
Na página do disco da VM clicaremos em +Create Snapshot:
Nesta etapa não focaremos muito nas configurações do snapshot também, com isso podemos alterar apenas 2 itens para uma cópia completa do disco e outro para redução de custos:
- Snapshot type: FULL
- Storage type: Standard HDD (locally-redundant storage)
O restante pode manter o padrão por default e clicar em Review + create:
Passo 7
E finalmente chegamos no último passo! Agora com o snapshot devidamente feito ANTES do sysprep, de fato vamos capturar a imagem desta VM, criar um Shared Gallery e adicionar esta imagem para se transformar em uma Golden Image.
7.1 – Vamos ligar a vm-golden-image e nos conectar a ela para realizarmos uma breve limpeza antes do sysprep, excluindo os arquivos baixados anteriormente e arquivos temporários que possam ter sido baixados durante as atualizações. Nesse momento temos uma imagem em PT-BR, portanto as buscas na barra de tarefas também mudaram, digite LIMPEZA e selecione o aplicativo Limpeza de Disco (Execute como Administrador):
Selecione o Disco ‘C:\‘ e aguarde enquanto realiza uma varredura e ao fim informa o calculo do espaço disponível a ser liberado. Em seguida marque todas as opções disponíveis para remover o máximo de espaço disponível e reduzir o tamanho da imagem, depois clique em OK:
7.2 – Próximo passo será abrir o Terminal (Como administrador), para fazer isso basta clicar com o botão direito e clicar em Terminal (Administrador):
Agora copie e cole o código abaixo no Terminal e em seguida aperte a tecla ENTER no teclado:
C:\Windows\System32\Sysprep\sysprep.exe /oobe /generalize /shutdown
Este é o momento em que a VM irá desligar e perderemos a conexão com ela. A partir desse momento é imprescindível que não façamos nenhum acesso novamente, caso contrário a imagem será perdida!
7.3 – Retornando para o Portal do Azure notaremos que o status da VM está como Stopped, porém o botão do Stop ainda está disponível, Por que isso? Justamente por desligarmos o recurso internamente apenas, enquanto o Azure continua disponibilizando o poder computacional e mantendo ela em atividade.
Agora podemos parar totalmente a VM clicando em Stop, para que o seu status seja atualizado para Stopped (deallocated).
7.4 – Vamos capturar esta imagem clicando no botão CAPTURE:
Como esta VM foi utilizada somente para a criação de um template, existe a possibilidade de excluí-la durante essa captura, reduzindo assim os custos com um recurso que não será utilizado. Basta somente marcar a opção: “Automatically delete this virtual machine after creating the image“.
Criaremos um novo Azure Compute Gallery para armazenar esta imagem, para criar uma nova basta clicar em Create New e dar um nome ao recurso:
Em “Operating system state” vamos deixar o padrão que está: Generalized: VMs created from this image require hostname, admin user, and other VM related setup to be completed on first boot
No campo “Target VM image definition” é onde precisamos incluir uma definição do nome desta imagem, como ela se chamará dentro da galeria, novamente iremos clicar em Create new e nomeá-la identificando com o tipo de imagem e versionamento atual (Os demais campos mantenham como estão):
Agora em “Version number” é onde colocaremos o versionamento desta Golden Image, por ser a primeira iniciaremos com 1.0.0.
E pensando em reduzir os custos, em “Default storage sku” colocaremos Standard HDD LRS.
A configuração desta captura ficará desta forma:
Por fim clicaremos em Review + create para gerarmos nossa Golden Image exclusiva para usar em AVD. É mais um processo um tanto demorado que pode variar entre 10 a 15 minutos:
UFA! Finalmente chegamos ao fim da criação e captura de uma Golden Image para utilizarmos em uma estrutura em AVD (Azure Virtual Desktop). Conseguimos montar uma estrutura semelhante a esta:
E por hoje é só pessoALL! Espero que tenham curtido bastante este artigo com cenário diário real bastante útil para administradores do Azure. Até a próxima!
REFERENCIAS
Criar uma Golden Image no Azure | https://learn.microsoft.com/pt-br/azure/virtual-desktop/set-up-golden-image |
Adicionar idiomas a uma imagem do Windows 11 Enterprise | https://learn.microsoft.com/pt-br/azure/virtual-desktop/windows-11-language-packs |
O que é a Área de Trabalho Virtual do Azure? | https://learn.microsoft.com/pt-br/azure/virtual-desktop/overview |
Redes Sociais