Ćwiczenie — Analizowanie scenariusza i mapowanie go na opcję technologii

Ukończone

Twoja organizacja rozwija się, a popyt w Europie i Azji rośnie. Siedziba organizacji mieści się w Stanach Zjednoczonych. Większość infrastruktury jest oparta na chmurze. Europejscy użytkownicy zgłaszają, że witryna internetowa działa wolno. W celu zapewnienia lepszej obsługi klientom w Europie firma poprosiła Cię o utworzenie nowego, udoskonalonego serwera internetowego dla Europy. Maszynę podczas aprowizowania należy skonfigurować jako serwer internetowy IIS.

Poproszono Cię o wybranie odpowiednich narzędzi do aprowizacji. Narzędzia powinny być łatwe w użyciu i łatwo modyfikowalne.

W tym ćwiczeniu aprowizujesz serwer internetowy, aby spełniał wymagania.

Aprowizowanie serwera internetowego

Aby aprowizować serwer internetowy, należy użyć kilku narzędzi. Za pomocą szablonu usługi Azure Resource Manager można zdefiniować środowisko dla serwera internetowego. Szablon usługi Resource Manager może również pomóc w zdefiniowaniu konfiguracji żądanego stanu (DSC) dla serwera internetowego. Po połączeniu z procedurą obsługi rozszerzenia DSC w szablonie usługi Resource Manager zarówno środowisko, jak i żądany stan są stosowane podczas aprowizacji serwera internetowego. Procedura obsługi rozszerzenia DSC pomaga wymusić zdefiniowany stan DSC.

W poniższym ćwiczeniu przeprowadzisz aprowizację maszyny wirtualnej przy użyciu szablonu usługi Resource Manager. Procedura obsługi rozszerzenia DSC, która jest zawarta w szablonie, wymusza określony przez Ciebie stan na maszynie wirtualnej. Do hostowania pliku konfiguracji DSC służy konto magazynu platformy Azure.

Klonowanie konfiguracji i szablonu

Zacznijmy od uzyskania pliku konfiguracji i szablonu usługi Azure Resource Manager z usługi GitHub.

  1. W wystąpieniu usługi Azure Cloud Shell po prawej stronie uruchom następujące polecenie, aby sklonować repozytorium GitHub.

    git clone https://github.com/MicrosoftDocs/mslearn-choose-compute-provisioning.git
    

Badanie i kompresowanie pliku State Configuration

Konfiguracja stanu jest definiowana w pliku Webserver.ps1 , który zawiera serwer internetowy usług IIS na maszynie wirtualnej. Przeanalizujmy ten plik.

  1. Aby otworzyć plik, uruchom następujące polecenia:

    cd mslearn-choose-compute-provisioning
    code Webserver.ps1
    

    Plik konfiguracji zawiera poniższy kod. Zwróć uwagę, że instaluje on usługi IIS, środowisko ASP.NET oraz Konsolę zarządzania usług IIS.

    Configuration Webserver
    {
        param ($MachineName)
    
        Node $MachineName
        {
            #Install the IIS Role
            WindowsFeature IIS
            {
                Ensure = "Present"
                Name = "Web-Server"
            }
    
            #Install ASP.NET 4.5
            WindowsFeature ASP
            {
                Ensure = "Present"
                Name = "Web-Asp-Net45"
            }
    
            WindowsFeature WebServerManagementConsole
            {
                Name = "Web-Mgmt-Console"
                Ensure = "Present"
            }
        }
    }
    
  2. Aby zamknąć edytor kodu, naciśnij klawisze Ctrl+Q.

  3. Aby wyświetlić zawartość sklonowanego repozytorium, uruchom następujące polecenie:

    ls -al
    

    Zwróć uwagę, że repozytorium zawiera zarówno plik Webserver.ps1, jak i skompresowany plik Webserver.zip. Skompresowany plik będzie używany w dalszej części tego ćwiczenia.

Konfigurowanie szablonu

Sklonowane repozytorium GitHub zawiera również szablon usługi Resource Manager. Zmodyfikujmy szablon, aby dodać do niego lokalizację spakowanego pliku konfiguracji.

  1. W usłudze Cloud Shell uruchom następujące polecenie, aby otworzyć szablon:

    code template.json
    
  2. W pliku template.json wyszukaj <parameters> element . Zwróć uwagę, że niektóre elementy członkowskie, takie jak vmName, nie mają wartości domyślnych. Gdy używasz szablonu, wyświetlany jest monit o wprowadzenie wartości dla tych właściwości.

  3. Możesz również podać wartość domyślną adresu URL pliku konfiguracji. W pliku kodu template.json znajdź następujący kod:

    "modulesUrl": {
        "type": "string",
        "metadata": {
            "description": "URL for the DSC configuration module."
        }
    },
    
  4. Dodaj wartość domyślną w następujący sposób, aby wyglądała następująco:

    "modulesUrl": {
        "type": "string",
        "defaultValue": "https://github.com/MicrosoftDocs/mslearn-choose-compute-provisioning/raw/master/Webserver.zip",
        "metadata": {
            "description": "URL for the DSC configuration module."
        }
    },
    
  5. Zapisz szablon, naciskając klawisze Ctrl+S.

    <variables> W sekcji pliku template.json zwróć uwagę, że wartości są przechowywane w celu skonfigurowania sieci dla maszyny wirtualnej.

    <resources> W sekcji zwróć uwagę, że szablon definiuje adres IP, sieć wirtualną, maszynę wirtualną i inne powiązane zasoby.

  6. Zamknij edytor kodu, naciskając klawisze Ctrl+Q.

Weryfikowanie szablonu

Teraz, gdy masz gotowy szablon i spakowany plik konfiguracji, możesz wdrożyć je za pomocą interfejsu wiersza polecenia platformy Azure. Przed wdrożeniem zweryfikuj pliki, aby sprawdzić, czy wdrożenie może zakończyć się pomyślnie.

  1. W usłudze Cloud Shell uruchom to polecenie, aby zweryfikować wdrożenie. Po wyświetleniu monitu o hasło wprowadź wybrane przez siebie złożone hasło.

    az deployment group validate \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --template-file template.json \
        --parameters vmName=hostVM1 adminUsername=serveradmin
    
  2. Jeśli wdrożenie zostanie zweryfikowane, dane wyjściowe zawierają informacje o wdrożeniu. Zwróć szczególną uwagę na error właściwość , która znajduje się na początku danych wyjściowych i można je znaleźć, przewijając z powrotem tekst wyjściowy. Powinna ona mieć wartość null.

    Screenshot of Cloud Shell showing a successful template validation with a callout highlighting the error property set to null.

    Jeśli nie wystąpiły żadne błędy, szablon został zweryfikowany i można go wdrożyć.

Wdrażanie szablonu

Teraz, gdy wiesz, że szablon jest prawidłowy, możesz go wdrożyć.

  1. Aby wdrożyć szablon, uruchom poniższe polecenie. Po wyświetleniu monitu o hasło wprowadź hasło zdefiniowane w poprzednim zadaniu.

    az deployment group create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --template-file template.json \
        --parameters vmName=hostVM1 adminUsername=serveradmin
    

    Ukończenie wdrożenia może potrwać kilka minut.

  2. Po zakończeniu wdrażania powinna być skonfigurowana maszyna wirtualna jako serwer internetowy usług IIS. Aby potwierdzić jego konfigurację, uruchom następujące polecenie, aby wyświetlić listę wszystkich zasobów w grupie zasobów.

    az resource list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table \
        --query "[*].{Name:name, Type:type}"
    

    Dane wyjściowe powinny zawierać host, rozszerzenie, interfejs sieciowy, adres publiczny, sieć wirtualną i konto magazynu. Jeśli widzisz wszystkie te zasoby na liście, wdrożenie zakończyło się pomyślnie.

  3. Uruchom następujące polecenie, aby wygenerować adres URL serwera internetowego. Wyjściowy adres IP potwierdza, że usługi IIS zostały pomyślnie zainstalowane.

    echo http://$(az vm show \
        --show-details \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name hostVM1 \
        --query publicIps \
        --output tsv)
    
  4. Wybierz adres URL lub skopiuj i wklej go w nowym oknie przeglądarki. Powinna zostać wyświetlona domyślna strona usług IIS.

    Screenshot of the default IIS page on the virtual machine that was deployed.

Gratulacje! Pomyślnie zainicjowano obsługę serwera internetowego przy użyciu szablonu usługi Resource Manager i wymuszono konfigurację żądanego stanu (DSC) na maszynie wirtualnej przy użyciu procedury obsługi rozszerzenia DSC.