Cloud-init gebruiken om pakketten bij te werken en te installeren in een Linux-VM in Azure

Van toepassing op: ✔️ Virtuele Linux-heavy_check_mark: Flexibele schaalsets

In dit artikel wordt beschreven 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 bij de eerste keer opstarten uitgevoerd zodra de resources zijn ingericht door Azure. Zie cloud-init overview (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

Uit veiligheidsdoeleinden kunt u een VM configureren om de meest recente updates toe te passen bij de eerste keer opstarten. Omdat cloud-init werkt in verschillende Linux-distributies, hoeft u of niet op te geven apt yum voor pakketbeheer. In plaats daarvan package_upgrade definieert u het cloud-init-proces en laat u het juiste mechanisme bepalen voor de distributie die wordt gebruikt.

In dit voorbeeld gebruiken we de Azure Cloud Shell. Als u het upgradeproces in actie wilt zien, maakt u een bestand met de cloud_init_upgrade.txt plakt u de volgende configuratie.

Selecteer de knop Probeer het in het onderstaande codeblok om de knop Cloud Shell. Als u het bestand wilt maken en een lijst met beschikbare editors in de Cloud Shell, typt u het volgende:

sensible-editor cloud_init_upgrade.txt 

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 VM met az vm create en geef het cloud-init-bestand met de parameter als volgt --custom-data op:

az vm create \
  --resource-group myResourceGroup \
  --name centos74 \
  --image OpenLogic:CentOS:7-CI:latest \
  --custom-data cloud_init_upgrade.txt \
  --generate-ssh-keys 

SSH naar het openbare IP-adres van uw VM dat wordt weergegeven in de uitvoer van de voorgaande opdracht. Voer als volgt uw eigen publicIpAddress in:

ssh <publicIpAddress>

Voer het hulpprogramma voor pakketbeheer uit en controleer op updates.

sudo yum update

Omdat cloud-init heeft gecontroleerd op updates en deze heeft geïnstalleerd bij het opstarten, moeten er geen aanvullende updates worden toegepast. U ziet het updateproces, het aantal gewijzigde pakketten en de installatie van door uit te werken en bekijkt de uitvoer die vergelijkbaar is met httpd yum history de onderstaande uitvoer.

Loaded plugins: fastestmirror, langpacks
ID     | Command line             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     3 | -t -y install httpd      | 2018-04-20 22:42 | Install        |    5
     2 | -t -y upgrade            | 2018-04-20 22:38 | I, U           |   65
     1 |                          | 2017-12-12 20:32 | Install        |  522

Volgende stappen

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