Delen via


Cloud-init gebruiken om pakketten bij te werken en te installeren op een Virtuele Linux-machine in Azure

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

In dit artikel leest u hoe u cloud-init gebruikt om pakketten bij te werken op een virtuele Linux-machine (VM) of virtuele-machineschaalsets tijdens het inrichten in Azure. Deze cloud-init-scripts worden uitgevoerd bij de eerste keer opstarten zodra de resources zijn ingericht door Azure. Zie het overzicht van cloud-init voor meer informatie over hoe cloud-init systeemeigen werkt in Azure en de ondersteunde Linux-distributies

Een VM bijwerken met cloud-init

Voor beveiligingsdoeleinden wilt u mogelijk een VIRTUELE machine configureren om de meest recente updates toe te passen bij het eerste opstarten. Omdat cloud-init in verschillende Linux-distributies werkt, hoeft u niet op te geven aptof zypper yum voor pakketbeheer. In plaats daarvan definieert package_upgrade en laat u het cloud-init-proces het juiste mechanisme voor de distributie in gebruik bepalen.

In dit voorbeeld gebruiken we De Azure Cloud Shell. Als u het upgradeproces in actie wilt zien, maakt u een bestand met de naam cloud_init_upgrade.txt en plakt u de volgende configuratie. U kunt elke editor die u wilt gebruiken. Zorg ervoor dat het hele cloud-init-bestand correct is gekopieerd, met name de eerste regel.

Kopieer de onderstaande tekst en plak deze in het cloud_init_upgrade.txt bestand. Zorg ervoor dat het hele cloud-init-bestand correct is gekopieerd, met name de eerste regel.

#cloud-config
package_upgrade: true
packages:
- httpd

Voordat u implementeert, moet u een resourcegroep maken met de opdracht az group create . Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie VS - oost.

az group create --name myResourceGroup --location eastus

Maak nu een virtuele machine met az vm create en geef het cloud-init-bestand als volgt op met de --custom-data parameter:

az vm create \
  --resource-group myResourceGroup \
  --name vmName \
  --image imageCIURN \
  --custom-data cloud_init_upgrade.txt \
  --admin-username azureuser \
  --generate-ssh-keys

Notitie

Vervang de waarden myResourceGroup, vmName en imageCIURN dienovereenkomstig. Zorg ervoor dat een afbeelding met Cloud-init is gekozen.

SSH naar het openbare IP-adres van uw VIRTUELE machine die wordt weergegeven in de uitvoer van de voorgaande opdracht. Voer als volgt uw eigen gebruiker en publicIpAddress in:

ssh <user>@<publicIpAddress>

Voer het hulpprogramma voor pakketbeheer uit en controleer op updates:

  • Voer de volgende opdracht uit om te bevestigen dat er geen updates in behandeling zijn
sudo yum check-update

Omdat cloud-init tijdens het opstarten op updates heeft gecontroleerd en geïnstalleerd, moeten er geen extra updates worden toegepast.

  • U kunt het updateproces, het aantal gewijzigde pakketten en de installatie bekijken httpd door de volgende opdracht uit te voeren en de uitvoer te controleren.
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

Volgende stappen

Zie het volgende voor aanvullende cloud-init-voorbeelden van configuratiewijzigingen: