Použití cloud-init k aktualizaci a instalaci balíčků na virtuálním počítači s Linuxem v Azure
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 apt
zypper
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 používáme 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.
- Můžete zobrazit proces aktualizace, počet změněných balíčků a instalaci
httpd
spuštěním následujícího příkazu a zkontrolovat výstup.
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: