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
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
- 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:
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ę.
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.