Ćwiczenie — skonfiguruj DSC i ustaw żądany stan

Ukończone

W tym ćwiczeniu utworzysz konto usługi Azure Automation i przekażesz rozszerzenie DSC programu PowerShell. Następnie dołączysz istniejącą maszynę wirtualną do usługi Azure Automation. Na koniec sprawdzisz, czy na maszynie wirtualnej brakuje IIS. Jeśli tak jest, uruchomisz kod, aby zainstalować i skonfigurować usługi IIS na maszynie wirtualnej.

Tworzenie maszyny wirtualnej

Zacznij od wdrożenia nowej maszyny wirtualnej z obrazu systemu Windows Server 2022.

  1. W okienku usługi Azure Cloud Shell po prawej stronie uruchom następujące polecenia, aby utworzyć nazwę użytkownika i wygenerować losowe hasło:

    USERNAME=azureuser
    PASSWORD=$(openssl rand -base64 32)
    
  2. Uruchom następujące polecenie w usłudze Cloud Shell, aby utworzyć maszynę wirtualną:

    az vm create \
      --resource-group "<rgn>[Sandbox resource group name]</rgn>" \
      --name myVM \
      --image win2019datacenter \
      --admin-username $USERNAME \
      --admin-password $PASSWORD
    

    Utworzenie maszyny wirtualnej i zasobów pomocniczych potrwa kilka minut. Jeśli maszyna wirtualna została pomyślnie utworzona, powinny zostać wyświetlone dane wyjściowe podobne do następujących:

    {
      "fqdns": "",
      "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
      "location": "eastus",
      "macAddress": "00-0D-3A-36-BA-28",
      "powerState": "virtual machine running",
      "privateIpAddress": "10.0.0.4",
      "publicIpAddress": "104.40.69.56",
      "resourceGroup": "myResourceGroup"
    }
    
  3. Skopiuj publicIpAddress z tych danych wyjściowych i zapisz je. W dalszej części ćwiczenia użyjesz tego adresu, aby uzyskać dostęp do maszyny wirtualnej.

  4. Uruchom następujące polecenie w usłudze Cloud Shell, aby otworzyć port 80 maszyny wirtualnej dla ruchu internetowego:

    az vm open-port \
      --port 80 \
      --resource-group "<rgn>[Sandbox resource group name]</rgn>" \
      --name myVM
    
  5. W przeglądarce internetowej przejdź do publicznego adresu IP maszyny wirtualnej http://[public-ip]. Mimo że port 80 jest otwarty, połączenie powinno zakończyć się z powodu This site can't be reached. Ten błąd występuje, ponieważ usługi IIS nie są wdrażane na maszynie wirtualnej. Naprawimy to w dalszej części tego ćwiczenia.

Tworzenie konta usługi Azure Automation

  1. Zaloguj się do portalu Azure przy użyciu tego samego konta, którego użyłeś do aktywowania piaskownicy.

  2. W menu zasobów witryny Azure Portal lub na stronie strona główna wybierz pozycję Utwórz zasób. Zostanie wyświetlone okienko Tworzenie zasobu.

  3. W polu tekstowym Search Services and marketplace wprowadź Automation, a następnie wybierz pozycję Wprowadź, aby wyświetlić wyniki wyszukiwania.

  4. W wynikach wyszukiwania Automation wybierz usługę Automation opublikowaną przez firmę Microsoft.

  5. Wybierz pozycję Utwórz. Pojawi się okienko Utwórz konto automatyzacji.

  6. Wprowadź następujące wartości dla każdego ustawienia.

    Ustawienie Wartość
    Subskrypcja Subskrypcja Concierge
    Grupa zasobów Wybierz istniejącą grupę zasobów na liście rozwijanej
    Nazwa Wprowadź nazwę dla swojego konta automatyzacji. Zalecamy użycie [twoich inicjałów]-automation-account. Użyj tej nazwy wszędzie tam, gdzie zobaczysz [nazwa-konta automatyzacji] w tym ćwiczeniu.
    Region Zaakceptuj lokalizację domyślną
  7. Wybierz Sprawdź i utwórz, a następnie wybierz Utwórz. Poczekaj na wdrożenie konta automatyzacji.

  8. Wybierz Przejdź do zasobu po zakończeniu wdrażania. Pojawi się panel konta usługi Automation dla zasobu.

Tworzenie skryptu konfiguracji DSC

  1. W usłudze Cloud Shell uruchom następujące polecenie, aby uruchomić sesję programu PowerShell:

    pwsh
    
  2. W wierszu polecenia programu PowerShell uruchom następujące polecenie, aby otworzyć nowy plik o nazwie MyDscConfiguration.ps1 w edytorze kodu:

    code $HOME/MyDscConfiguration.ps1
    
  3. Wprowadź następujący blok kodu w pliku. Ten kod tworzy konfigurację do zainstalowania usług IIS, jeśli nie jest jeszcze zainstalowana. Następnie kod uruchamia skrypt w celu skompilowania konfiguracji.

    Configuration MyDscConfiguration {
      Node "localhost" {
        WindowsFeature MyFeatureInstance {
          Ensure = 'Present'
          Name = 'Web-Server'
        }
      }
    }
    
  4. Wybierz Ctrl+S, aby zapisać plik w katalogu głównym, a następnie wybierz Ctrl+Q, aby zamknąć edytor.

  5. W sesji programu PowerShell w usłudze Azure Cloud Shell wprowadź następujący kod, zastępując [your-automation-account-name] nazwą zasobu konta automatyzacji, aby przekazać skrypt DSC do konta usługi Azure Automation.

    Import-AzAutomationDscConfiguration `
        -Published `
        -ResourceGroupName <rgn>[Sandbox resource group name]</rgn> `
        -SourcePath $HOME/MyDscConfiguration.ps1 `
        -Force `
        -AutomationAccountName [your-automation-account-name]
    

    Polecenie powinno wygenerować dane wyjściowe, które wyglądają następująco:

    ResourceGroupName     : <rgn>[Sandbox resource group name]</rgn>
    AutomationAccountName : [your-automation-account-name]
    Location              : eastus
    State                 : Published
    Name                  : MyDscConfiguration
    Tags                  : {}
    CreationTime          : 6/25/21 5:44:36 PM +00:00
    LastModifiedTime      : 6/25/21 5:44:36 PM +00:00
    Description           :
    Parameters            : {}
    LogVerbose            : False
    

Dodawanie wymaganych modułów (opcjonalnie)

Po przekazaniu skryptu konfiguracji DSC zaimportuj wszystkie moduły programu PowerShell, których potrzebuje proces DSC. Nasza konfiguracja nie wymaga żadnych innych modułów, więc możemy pominąć ten krok. Jeśli musisz zaimportować lub dodać moduły do konta usługi Automation, przejdź do konta usługi Automation w witrynie Azure Portal. W tym miejscu wybierzesz moduły w nagłówku Udostępnione zasoby po lewej stronie, następnie wybierasz Dodaj moduł.

Kompilowanie skryptu DSC

  1. W witrynie Azure Portal okienko Przegląd dla konta usługi Azure Automation powinno być nadal wyświetlane.

  2. Z menu Konto automatyzacji, w obszarze Configuration Management, wybierz pozycję State Configuration (DSC). Zostanie wyświetlone okienko State Configuration (DSC) dla konta usługi Automation.

  3. Wybierz kartę Configurations (Konfiguracje). Sprawdź, czy zostanie wyświetlona konfiguracja MyDscConfiguration, a następnie wybierz ją. Zostanie wyświetlone okienko MyDscConfiguration Configuration (Konfiguracja).

    Zrzut ekranu portalu Azure, przedstawiający konfiguracje stanu dostępne w okienku Konfiguracja stanu (DSC).

  4. Na pasku poleceń wybierz pozycję Kompiluj.

  5. W oknie dialogowym Kompiluj konfigurację DSC wybierz pozycję Tak.

  6. Sprawdź powiadomienia (ikona Powiadomienia znajduje się w kontrolkach globalnych w nagłówku strony). Poczekaj, aż zadanie kompilacji wyświetli stanUkończone, co może potrwać kilka minut.

    Notatka

    Może być konieczne odświeżenie, aby zobaczyć zmianę stanu. Aby odświeżyć, w lewym górnym rogu ścieżki nawigacyjnej portalu Azure wybierz swoje konto automatyzacji. Zostanie wyświetlone okienko konfiguracji stanu (DSC). Na górnym pasku menu wybierz pozycję Odśwież. Następnie wybierz konfigurację MyDscConfiguration z listy, aby powrócić do panelu MyDscConfiguration. Na karcie zadania kompilacji stan powinien teraz być wyświetlany jako Ukończono.

    Zrzut ekranu witryny Azure Portal przedstawiający stan zadania kompilacji dla konfiguracji.

  7. Po zakończeniu kompilacji zamknij okienko MyDscConfiguration. Pojawi się panel konfiguracji stanu (DSC).

Rejestrowanie maszyny wirtualnej przy użyciu konta usługi Azure Automation

  1. Na panelu Konfiguracja Stanu (DSC) dla [your-automation-account-name], wybierz kartę Węzły. Na pasku poleceń wybierz Dodaj. Zostanie wyświetlone okienko maszyn wirtualnych dla konta automatyzacji.

    Zrzut ekranu witryny Azure Portal przedstawiający okienko Węzły.

  2. Wybierz maszynę wirtualną utworzoną w pierwszym zadaniu tego ćwiczenia (myVM). Propagacja konfiguracji i maszyny wirtualnej w sieci może potrwać do 10 minut. Jeśli maszyny wirtualnej nie ma na liście, poczekaj kilka minut, a następnie wybieraj Odśwież na pasku poleceń, aż się pojawi.

  3. Na pasku poleceń wybierz pozycję Connect. Pojawi się okienko rejestracji .

    Zrzut ekranu witryny Azure Portal przedstawiający okienko Maszyny wirtualne.

  4. Wprowadź następujące wartości dla każdego ustawienia.

    Ustawienie Wartość
    Nazwa konfiguracji węzła Z listy rozwijanej wybierz pozycję MyDscConfiguration.localhost
    Częstotliwość odświeżania 30
    Częstotliwość trybu konfiguracji 15
    Tryb konfiguracji Zastosuj i Monitoruj
    Zezwalaj na zastąpienie modułu Zaznacz pole wyboru
    W razie potrzeby uruchom ponownie węzeł Zaznacz pole wyboru
    Akcja po ponownym uruchomieniu KontynuujKonfigurowanie
  5. Wybierz pozycję OK.

  6. Poczekaj na połączenie maszyny wirtualnej. Ten proces może potrwać kilka minut. Gdy myVM jest połączona, w ścieżce do stron nadrzędnych w lewym górnym rogu portalu wybierz konto usługi Automation, aby zamknąć okienko rejestracji i maszyn wirtualnych. Zostanie wyświetlone okienko State Configuration (DSC) dla konta usługi Automation.

  7. Na pasku poleceń wybierz pozycję Odśwież.

  8. Sprawdź, czy węzeł myVM jest wyświetlany na liście i czy jego stan to Zgodny.

    Zrzut ekranu witryny Azure Portal przedstawiający okienko Węzły z zarejestrowaną maszyną wirtualną myVM.

Sprawdź, czy usługi IIS są zainstalowane na maszynie wirtualnej

W przeglądarce internetowej przejdź do http://[public-ip], gdzie [public-ip] jest publicznym adresem IP zarejestrowanym wcześniej w tym ćwiczeniu.

Powinna zostać wyświetlona domyślna strona internetowa usług IIS. Zrzut ekranu przedstawiający domyślne okienko usług IIS w przeglądarce internetowej.

Gratulacje! Pomyślnie wdrożono usługi IIS. Usługa Azure Automation użyła skryptu PowerShell DSC przekazanego do konta Azure Automation.