Udostępnij za pośrednictwem


Samouczek: instalowanie aplikacji w zestawach skalowania maszyn wirtualnych przy użyciu interfejsu wiersza polecenia platformy Azure

Aby uruchamiać aplikacje na wystąpieniach maszyn wirtualnych w zestawie skalowania, musisz najpierw zainstalować składniki aplikacji i wymagane pliki. W poprzednim samouczku omówiono tworzenie niestandardowego obrazu maszyny wirtualnej i wdrażanie własnych wystąpień maszyn wirtualnych. Niestandardowy obraz zawierał ręczne instalacje i konfiguracje aplikacji. Można również zautomatyzować instalację aplikacji w zestawie skalowania po wdrożeniu poszczególnych wystąpień maszyn wirtualnych lub zaktualizować już uruchomioną aplikację. Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Automatyczne instalowanie aplikacji w zestawie skalowania
  • Używanie rozszerzenia niestandardowego skryptu platformy Azure
  • Aktualizowanie uruchomionej aplikacji w zestawie skalowania

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

  • Ten artykuł wymaga wersji 2.0.29 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

Co to jest rozszerzenie niestandardowego skryptu platformy Azure?

Rozszerzenie niestandardowego skryptu pobiera i wykonuje skrypty na maszynach wirtualnych platformy Azure. To rozszerzenie jest przydatne w przypadku konfiguracji po wdrożeniu, instalowania oprogramowania lub każdego innego zadania związanego z konfiguracją lub zarządzaniem. Skrypty można pobrać z usługi Azure Storage lub GitHub bądź można je dostarczyć do witryny Azure Portal w czasie wykonywania rozszerzenia.

Rozszerzenie niestandardowego skryptu można zintegrować z szablonami usługi Azure Resource Manager, a także je uruchamiać przy użyciu interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell, witryny Azure Portal lub interfejsu API REST. Aby uzyskać więcej informacji, zobacz Omówienie niestandardowego rozszerzenia skryptu.

Korzystanie z rozszerzenia niestandardowego skryptu za pomocą interfejsu wiersza polecenia platformy Azure wymaga utworzenia pliku JSON, który definiuje uzyskiwane pliki i wykonywane polecenia. Definicji JSON można używać we wszystkich wdrożeniach zestawu skalowania, co pozwala stosować spójne instalacje aplikacji.

Tworzenie definicji rozszerzenia niestandardowego skryptu

Aby zobaczyć, jak działa rozszerzenie niestandardowego skryptu, utworzymy zestaw skalowania, który instaluje serwer internetowy NGINX i zwraca nazwę hosta wystąpienia maszyny wirtualnej w zestawie skalowania. Poniższa definicja rozszerzenia niestandardowego skryptu pobiera przykładowy skrypt z witryny GitHub, instaluje wymagane pakiety, a następnie zapisuje nazwę hosta wystąpienia maszyny wirtualnej na prostej stronie HTML.

W bieżącej powłoce utwórz plik o nazwie customConfig.json i wklej poniższą konfigurację. Na przykład utwórz plik w usłudze Cloud Shell, a nie na maszynie lokalnej. Możesz użyć dowolnego edytora. W tym samouczku użyjemy programu Vi. Wprowadźvi wartość w usłudze Cloud Shell. Wklej poniższy kod JSON do edytora i wpisz :w customConfig.json.

{
  "fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
  "commandToExecute": './automate_nginx.sh'
}

Uwaga

Może być konieczne odwrócenie użycia pojedynczego cudzysłowu (') i cudzysłowów (") w bloku JSON, jeśli zdecydujesz się odwoływać się bezpośrednio do pliku JSON (zamiast odwoływać się do pliku customConfig.json ) w parametrze --settings poniżej.

Tworzenie zestawu skalowania

Ważne

Od listopada 2023 r. zestawy skalowania maszyn wirtualnych utworzone przy użyciu programu PowerShell i interfejsu wiersza polecenia platformy Azure będą domyślnie ustawiać tryb elastycznej orkiestracji, jeśli nie określono trybu aranżacji. Aby uzyskać więcej informacji na temat tej zmiany i akcji, które należy wykonać, zobacz Zmiana powodująca niezgodność dla klientów programu PowerShell/interfejsu wiersza polecenia usługi VMSS — Microsoft Community Hub

Utwórz grupę zasobów za pomocą polecenia az group create. W poniższym przykładzie pokazano tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus:

az group create --name myResourceGroup --location eastus

Teraz utwórz zestaw skalowania maszyn wirtualnych za pomocą polecenia az vmss create. W poniższym przykładzie pokazano tworzenie zestawu skalowania o nazwie myScaleSet i generowanie kluczy SSH, jeśli nie istnieją:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  --orchestration-mode Flexible \
  --admin-username azureuser \
  --generate-ssh-keys

Utworzenie i skonfigurowanie wszystkich zasobów zestawu skalowania i maszyn wirtualnych trwa kilka minut.

Stosowanie rozszerzenia niestandardowego skryptu

Za pomocą polecenia az vmss extension set zastosuj konfigurację rozszerzenia niestandardowego skryptu do wystąpień maszyn wirtualnych w zestawie skalowania. W następującym przykładzie konfiguracja customConfig.json jest stosowana do wystąpień maszyn wirtualnych zestawu myScaleSet w grupie zasobów myResourceGroup:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings customConfig.json

Uwaga

W nazwach plików jest rozróżniana wielkość liter. Użyj dokładnej nazwy pliku podanej w tych instrukcjach, aby uniknąć błędu.

Stosowanie rozszerzenia do istniejących wystąpień zestawu skalowania

Uaktualnij wszystkie wystąpienia, aby zastosować skrypt niestandardowy. Uaktualnienie może potrwać kilka minut.

az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"

Zezwalaj na ruch do portu 80

Aby zezwolić na przepływ ruchu przez moduł równoważenia obciążenia do maszyn wirtualnych, należy zaktualizować domyślną sieciową grupę zabezpieczeń.

az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80 

Testowanie zestawu skalowania

Aby zobaczyć, jak działa serwer internetowy, uzyskaj publiczny adres IP modułu równoważenia obciążenia za pomocą polecenia az network public-ip show. W poniższym przykładzie pokazano uzyskiwanie adresu IP dla modułu myScaleSetLBPublicIP utworzonego w ramach zestawu skalowania:

az network public-ip show \
  --resource-group myResourceGroup \
  --name myScaleSetLBPublicIP \
  --query [ipAddress] \
  --output tsv

Wprowadź publiczny adres IP modułu równoważenia obciążenia w przeglądarce internetowej. Moduł równoważenia obciążenia kieruje ruch do jednego z wystąpień maszyn wirtualnych, jak pokazano w poniższym przykładzie:

Podstawowa strona internetowa na serwerze Nginx

Nie zamykaj przeglądarki internetowej, aby w następnym kroku można było zobaczyć zaktualizowaną wersję.

Zmienianie zasad uaktualniania

W poprzedniej sekcji, aby zastosować zaktualizowaną aplikację do wszystkich wystąpień zestawu skalowania, konieczne było ręczne uaktualnienie. Aby umożliwić automatyczne stosowanie aktualizacji do wszystkich istniejących wystąpień zestawu skalowania, zaktualizuj zasady uaktualniania z ręcznego do automatycznego. Aby uzyskać więcej informacji na temat zasad uaktualniania, zobacz Uaktualnianie zasad dla zestawów skalowania maszyn wirtualnych.

az vmss update \
    --name myScaleSet \
    --resource-group myResourceGroup \
    --set upgradePolicy.mode=automatic

Aktualizowanie wdrożenia aplikacji

W bieżącej powłoce utwórz plik o nazwie customConfigv2.json i wklej poniższą konfigurację. Ta definicja umożliwia uruchomienie zaktualizowanej wersji v2 skryptu instalacji aplikacji:

{
  "fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
  "commandToExecute": "./automate_nginx_v2.sh"
}

Ponownie zastosuj konfigurację rozszerzenia niestandardowego skryptu do zestawu skalowania za pomocą polecenia az vmss extension set. Plik customConfigv2.json umożliwia zastosowanie zaktualizowanej wersji aplikacji:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings @customConfigv2.json

Ponieważ zestaw skalowania korzysta teraz z zasad automatycznego uaktualniania, zaktualizowana aplikacja zostanie automatycznie zastosowana do istniejących wystąpień zestawu skalowania. Odśwież przeglądarkę internetową, aby wyświetlić zaktualizowaną aplikację.

Zaktualizowana strona internetowa na serwerze Nginx

Czyszczenie zasobów

Aby pozbyć się zestawu skalowania i dodatkowych zasobów, usuń grupę zasobów wraz z całą zawartością za pomocą polecenia az group delete. Parametr --no-wait zwraca kontrolę do wiersza polecenia bez oczekiwania na zakończenie operacji. Parametr --yes potwierdza, że chcesz usunąć zasoby bez wyświetlania dodatkowego monitu.

az group delete --name myResourceGroup --no-wait --yes

Następne kroki

W tym samouczku przedstawiono automatyczne instalowanie i aktualizowanie aplikacji w zestawie skalowania za pomocą interfejsu wiersza polecenia platformy Azure:

  • Automatyczne instalowanie aplikacji w zestawie skalowania
  • Używanie rozszerzenia niestandardowego skryptu platformy Azure
  • Aktualizowanie uruchomionej aplikacji w zestawie skalowania

Przejdź do następnego samouczka, aby dowiedzieć się, jak automatycznie skalować zestaw skalowania.