Share via


Använda cloud-init för att uppdatera och installera paket på en virtuell Linux-dator i Azure

Varning

Den här artikeln refererar till CentOS, en Linux-distribution som närmar sig EOL-status (End Of Life). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.

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 samt 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: