Używanie pakietu cloud-init do aktualizowania i instalowania pakietów na maszynie wirtualnej z systemem Linux na platformie Azure
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️
W tym artykule pokazano, jak używać pakietu cloud-init do aktualizowania pakietów na maszynie wirtualnej z systemem Linux lub zestawów skalowania maszyn wirtualnych w czasie aprowizacji na platformie Azure. Te skrypty cloud-init są uruchamiane podczas pierwszego rozruchu po aprowizacji zasobów przez platformę Azure. Aby uzyskać więcej informacji na temat natywnego działania pakietu cloud-init na platformie Azure i obsługiwanych dystrybucji systemu Linux, zobacz cloud-init overview (Omówienie pakietu cloud-init)
Aktualizowanie maszyny wirtualnej przy użyciu pakietu cloud-init
Ze względów bezpieczeństwa możesz skonfigurować maszynę wirtualną w celu zastosowania najnowszych aktualizacji podczas pierwszego rozruchu. Ponieważ pakiet cloud-init działa w różnych dystrybucjach systemu Linux, nie ma potrzeby określania apt
elementu lub zypper
yum
menedżera pakietów. Zamiast tego należy zdefiniować package_upgrade
i pozwolić procesowi cloud-init określić odpowiedni mechanizm dla używanego dystrybucji.
W tym przykładzie używamy usługi Azure Cloud Shell. Aby zobaczyć, jak działa proces uaktualniania, utwórz plik o nazwie cloud_init_upgrade.txt i wklej następującą konfigurację. Możesz użyć dowolnego edytora. Upewnij się, że cały plik cloud-init został poprawnie skopiowany, zwłaszcza w pierwszym wierszu.
Skopiuj poniższy tekst i wklej go do cloud_init_upgrade.txt
pliku. Upewnij się, że cały plik cloud-init został poprawnie skopiowany, zwłaszcza w pierwszym wierszu.
#cloud-config
package_upgrade: true
packages:
- httpd
Przed wdrożeniem należy utworzyć grupę zasobów za pomocą polecenia az group create . Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus.
az group create --name myResourceGroup --location eastus
Teraz utwórz maszynę wirtualną za pomocą polecenia az vm create i określ plik cloud-init za pomocą parametru --custom-data
w następujący sposób:
az vm create \
--resource-group myResourceGroup \
--name vmName \
--image imageCIURN \
--custom-data cloud_init_upgrade.txt \
--admin-username azureuser \
--generate-ssh-keys
Uwaga
Zastąp odpowiednio wartości myResourceGroup, vmName i imageCIURN . Upewnij się, że wybrano obraz z elementem Cloud-init.
Za pomocą protokołu SSH na publiczny adres IP maszyny wirtualnej pokazany w danych wyjściowych z poprzedniego polecenia. Wprowadź własnego użytkownika i publicIpAddress w następujący sposób:
ssh <user>@<publicIpAddress>
Uruchom narzędzie do zarządzania pakietami i sprawdź dostępność aktualizacji:
- Wykonaj następujące polecenie, aby potwierdzić, że nie ma oczekujących aktualizacji
sudo yum check-update
Ponieważ pakiet cloud-init sprawdził i zainstalował aktualizacje podczas rozruchu, nie powinno być żadnych dodatkowych aktualizacji do zastosowania.
- Proces aktualizacji, liczba zmienionych pakietów i instalacja
httpd
polecenia można wyświetlić, uruchamiając następujące polecenie i przeglądając dane wyjściowe.
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
Następne kroki
Aby uzyskać dodatkowe przykłady zmian konfiguracji cloud-init, zobacz następujące kwestie:
- Dodawanie dodatkowego użytkownika systemu Linux do maszyny wirtualnej
- Uruchamianie menedżera pakietów w celu zaktualizowania istniejących pakietów podczas pierwszego rozruchu
- Zmienianie nazwy hosta lokalnego maszyny wirtualnej
- Instalowanie pakietu aplikacji, aktualizowanie plików konfiguracji i wstrzykiwanie kluczy