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

Let op

In dit artikel wordt verwezen naar CentOS, een Linux-distributie die de status End Of Life (EOL) nadert. Houd rekening met uw gebruik en plan dienovereenkomstig. Zie de Richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.

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 werkt in verschillende Linux-distributies, hoeft u niet op te geven aptof zypperyum 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 ervan httpd zien 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: