Udostępnij za pośrednictwem


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 aptelementu 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: