Použití cloud-init k aktualizaci a instalaci balíčků na virtuálním počítači s Linuxem v Azure

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu Konec životnosti (EOL). Zvažte své použití a odpovídajícím způsobem naplánujte. Další informace najdete v doprovodných materiálech CentOS End Of Life.

Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️

V tomto článku se dozvíte, jak pomocí cloud-init aktualizovat balíčky na virtuálním počítači s Linuxem nebo ve škálovacích sadách virtuálních počítačů v době zřizování v Azure. Tyto skripty cloud-init se spouštějí při prvním spuštění po zřízení prostředků v Azure. Další informace o tom, jak cloud-init nativně funguje v Azure a podporovaných distribucí Linuxu, najdete v přehledu cloud-init.

Aktualizace virtuálního počítače pomocí cloud-init

Pro účely zabezpečení můžete chtít nakonfigurovat virtuální počítač tak, aby při prvním spuštění použil nejnovější aktualizace. Vzhledem k tomu, že cloud-init funguje v různých distribucích Linuxu, není nutné zadávat aptzypper ani yum pro správce balíčků. Místo toho definujete package_upgrade a necháte proces cloud-init určit vhodný mechanismus používané distribuce.

V tomto příkladu budeme používat Azure Cloud Shell. Pokud chcete vidět proces upgradu v akci, vytvořte soubor s názvem cloud_init_upgrade.txt a vložte následující konfiguraci. Můžete použít libovolný editor podle svojí volby. Ujistěte se, že se celý soubor cloud-init zkopíroval správně, zejména první řádek.

Zkopírujte níže uvedený text a vložte ho cloud_init_upgrade.txt do souboru. Ujistěte se, že se celý soubor cloud-init zkopíroval správně, zejména první řádek.

#cloud-config
package_upgrade: true
packages:
- httpd

Před nasazením je potřeba vytvořit skupinu prostředků pomocí příkazu az group create . Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus.

az group create --name myResourceGroup --location eastus

Teď vytvořte virtuální počítač pomocí příkazu az vm create a zadejte soubor cloud-init s parametrem --custom-data následujícím způsobem:

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

Poznámka:

Odpovídajícím způsobem nahraďte hodnoty myResourceGroup, vmName a imageCIURN . Ujistěte se, že je vybraná image s Cloud-init.

Připojte se přes SSH k veřejné IP adrese vašeho virtuálního počítače zobrazeného ve výstupu z předchozího příkazu. Zadejte vlastního uživatele a publicIpAddress následujícím způsobem:

ssh <user>@<publicIpAddress>

Spusťte nástroj pro správu balíčků a zkontrolujte aktualizace:

  • Spuštěním následujícího příkazu potvrďte, že neexistují žádné čekající aktualizace.
sudo yum check-update

Vzhledem k tomu, že cloud-init kontroluje a instaluje aktualizace při spuštění, nemělo by existovat žádné další aktualizace, které by bylo možné použít.

  • Proces aktualizace, počet změněných balíčků a instalaci httpd můžete zobrazit spuštěním následujícího příkazu a kontrolou výstupu.
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

Další kroky

Další příklady změn konfigurace cloud-init najdete v následujících tématech: