Usar cloud-init para atualizar e instalar pacotes em uma VM Linux no Azure
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
Este artigo mostra como usar o cloud-init para atualizar pacotes em uma máquina virtual (VM) Linux ou conjuntos de dimensionamento de máquina virtual no momento do provisionamento no Azure. Esses scripts de inicialização na nuvem são executados na primeira inicialização depois que os recursos são provisionados pelo Azure. Para obter mais informações sobre como o cloud-init funciona nativamente no Azure e nas distribuições Linux suportadas, consulte visão geral do cloud-init
Atualizar uma VM com cloud-init
Para fins de segurança, convém configurar uma VM para aplicar as atualizações mais recentes na primeira inicialização. Como o cloud-init funciona em diferentes distros Linux, não há necessidade de especificar apt
, zypper
ou yum
para o gerenciador de pacotes. Em vez disso, você define package_upgrade
e permite que o processo cloud-init determine o mecanismo apropriado para a distro em uso.
Para este exemplo, usamos o Azure Cloud Shell. Para ver o processo de atualização em ação, crie um arquivo chamado cloud_init_upgrade.txt e cole a seguinte configuração. Pode utilizar qualquer editor que desejar. Certifique-se de que todo o arquivo cloud-init é copiado corretamente, especialmente a primeira linha.
Copie o texto abaixo e cole-o no cloud_init_upgrade.txt
arquivo. Certifique-se de que todo o arquivo cloud-init é copiado corretamente, especialmente a primeira linha.
#cloud-config
package_upgrade: true
packages:
- httpd
Antes de implantar, você precisa criar um grupo de recursos com o comando az group create . Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos. O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.
az group create --name myResourceGroup --location eastus
Agora, crie uma VM com az vm create e especifique o arquivo cloud-init com o --custom-data
parâmetro da seguinte maneira:
az vm create \
--resource-group myResourceGroup \
--name vmName \
--image imageCIURN \
--custom-data cloud_init_upgrade.txt \
--admin-username azureuser \
--generate-ssh-keys
Nota
Substitua os valores myResourceGroup, vmName e imageCIURN de acordo. Certifique-se de que uma imagem com Cloud-init foi escolhida.
SSH para o endereço IP público da sua VM mostrado na saída do comando anterior. Digite seu próprio usuário e publicIpAddress da seguinte maneira:
ssh <user>@<publicIpAddress>
Execute a ferramenta de gerenciamento de pacotes e verifique se há atualizações:
- Execute o seguinte comando para confirmar que não há atualizações pendentes
sudo yum check-update
Como o cloud-init verificou e instalou atualizações na inicialização, não deve haver atualizações adicionais a serem aplicadas.
- Você pode ver o processo de atualização, o número de pacotes alterados e a instalação do
httpd
executando o seguinte comando e revisar a saída.
sudo yum history
ID | Command line | Date and time | Action(s) | Altered
--------------------------------------------------------------------------------------------------
3 | -y install httpd | 2022-02-18 18:30 | Install | 7
2 | -y upgrade | 2022-02-18 18:23 | I, O, U | 321 EE
1 | | 2021-02-04 19:20 | Install | 496 EE
Próximos passos
Para obter exemplos adicionais de alterações de configuração na nuvem, consulte o seguinte: