Använda cloud-init för att uppdatera och installera paket på en virtuell Linux-dator i Azure
Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️
Den här artikeln visar hur du använder cloud-init för att uppdatera paket på en virtuell Linux-dator (VM) eller vm-skalningsuppsättningar vid etableringstid i Azure. Dessa cloud-init-skript körs vid första starten när resurserna har etablerats av Azure. Mer information om hur cloud-init fungerar internt i Azure och vilka Linux-distributioner som stöds finns i översikten över cloud-init
Uppdatera en virtuell dator med cloud-init
Av säkerhetsskäl kanske du vill konfigurera en virtuell dator för att tillämpa de senaste uppdateringarna vid första starten. Eftersom cloud-init fungerar i olika Linux-distributioner behöver du inte ange apt
, zypper
eller yum
för pakethanteraren. I stället definierar package_upgrade
och låter du moln-init-processen fastställa lämplig mekanism för distributionen som används.
I det här exemplet använder vi Azure Cloud Shell. Om du vill se hur uppgraderingsprocessen fungerar skapar du en fil med namnet cloud_init_upgrade.txt och klistrar in följande konfiguration. Du kan använda vilket redigeringsprogram som helst. Kontrollera att hela cloud-init-filen kopieras korrekt, särskilt den första raden.
Kopiera texten nedan och klistra in den cloud_init_upgrade.txt
i filen. Kontrollera att hela cloud-init-filen kopieras korrekt, särskilt den första raden.
#cloud-config
package_upgrade: true
packages:
- httpd
Innan du distribuerar måste du skapa en resursgrupp med kommandot az group create . En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. I följande exempel skapas en resursgrupp med namnet myResourceGroup i regionen eastus.
az group create --name myResourceGroup --location eastus
Skapa nu en virtuell dator med az vm create och ange filen cloud-init med parametern --custom-data
enligt följande:
az vm create \
--resource-group myResourceGroup \
--name vmName \
--image imageCIURN \
--custom-data cloud_init_upgrade.txt \
--admin-username azureuser \
--generate-ssh-keys
Kommentar
Ersätt värdena myResourceGroup, vmName och imageCIURN i enlighet med detta. Kontrollera att en avbildning med Cloud-init har valts.
SSH till den offentliga IP-adressen för den virtuella datorn som visas i utdata från föregående kommando. Ange din egen användare och publicIpAddress på följande sätt:
ssh <user>@<publicIpAddress>
Kör pakethanteringsverktyget och sök efter uppdateringar:
- Kör följande kommando för att bekräfta att det inte finns några väntande uppdateringar
sudo yum check-update
Eftersom cloud-init har sökt efter och installerat uppdateringar vid start bör det inte finnas några ytterligare uppdateringar att tillämpa.
- Du kan se uppdateringsprocessen, antalet ändrade paket och installationen av
httpd
genom att köra följande kommando och granska utdata.
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
Nästa steg
Ytterligare moln-init-exempel på konfigurationsändringar finns i följande: