練習 - 設定 DSC 並設定預期狀態

已完成

在此練習中,您將建立 Azure 自動化帳戶,並上傳 PowerShell DSC。 然後,您會將現有的 VM 上線到 Azure 自動化中。 最後,您會檢查 VM 是否遺漏 IIS。 如果是,您會執行程式碼,以在 VM 上安裝及設定 IIS。

建立 VM

從 Windows Server 2022 映像部署新的 VM 開始。

  1. 在右側的 [Azure Cloud Shell] 窗格中,執行下列命令來建立使用者名稱,並產生隨機密碼:

    USERNAME=azureuser
    PASSWORD=$(openssl rand -base64 32)
    
  2. 在 Cloud Shell 中,執行下列命令來建立 VM:

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

    建立虛擬機器和支援資源需要幾分鐘的時間。 如果成功建立 VM,您應該會看到如下的輸出:

    {
      "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. 從此輸出複製 publicIpAddress 並加以儲存。 稍後在練習中,您會使用此位址來存取 VM。

  4. 在 Cloud Shell 中執行下列命令,以針對網路流量開啟 VM 的連接埠 80:

    az vm open-port \
      --port 80 \
      --resource-group <rgn>[Sandbox resource group name]</rgn> \
      --name myVM
    
  5. 在網頁瀏覽器中,前往 VM http://[public-ip] 的公用 IP 位址。 雖然連接埠 80 已開啟,但您的連線應該已逾時,並發生 This site can't be reached。 此錯誤是因為 IIS 未部署在 VM 上。 我們將在本練習稍後修正此問題。

建立 Azure 自動化帳戶

  1. 使用您啟用沙箱時所使用的相同帳戶來登入 Azure 入口網站

  2. 在 Azure 入口網站資源功能表上或 [首頁] 頁面中,選取 [建立資源]。 [建立資源] 窗格隨即會顯示。

  3. [搜尋服務和市集] 文字方塊中,輸入 Automation,然後選取 Enter,以檢視搜尋結果。

  4. Automation 搜尋結果中,選取由 Microsoft 發佈的 Automation Azure 服務。

  5. 選取建立。 [建立自動化帳戶] 窗格會隨即出現。

  6. 針對每個設定輸入下列值。

    設定
    訂用帳戶 指引訂用帳戶
    資源群組 在下拉式清單中選取現有的資源群組
    名稱 輸入自動化帳戶的名稱。 我們建議使用 [您的姓名縮寫]-automation-account。 在此練習中看到 [your-automation-account-name] 的任何地方,請使用此名稱。
    區域 接受預設位置
  7. 選取 [檢閱 + 建立],然後選取 [建立]。 等到自動化帳戶部署完成。

  8. 在完成部署後,選取 [前往資源]。 資源的 [自動化帳戶] 窗格隨即出現。

建立 DSC 設定指令碼

  1. 在 Cloud Shell 中,執行下列命令以啟動 PowerShell 工作階段:

    pwsh
    
  2. 在 PowerShell 提示中,執行下列命令,以在程式碼編輯器中開啟名為 MyDscConfiguration.ps1 的新檔案:

    code $HOME/MyDscConfiguration.ps1
    
  3. 在檔案中輸入下列程式碼區塊。 此程式碼會建立安裝 IIS 的設定 (如果尚未安裝)。 然後,程式碼會執行指令碼以編譯設定。

    Configuration MyDscConfiguration {
      Node "localhost" {
        WindowsFeature MyFeatureInstance {
          Ensure = 'Present'
          Name = 'Web-Server'
        }
      }
    }
    
  4. 選取 Ctrl+S 以在主目錄中儲存檔案,然後選取 Ctrl+Q 以關閉編輯器。

  5. 在 Azure Cloud Shell 的 PowerShell 工作階段中,輸入下列程式碼,以自動化帳戶資源的名稱取代 [your-automation-account-name],將 DSC 指令碼上傳至 Azure 自動化帳戶。

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

    此命令應該會產生如下所示的輸出:

    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
    

新增必要模組 (選用)

在您上傳 DSC 設定指令碼之後,請匯入 DSC 程序所需的任何 PowerShell 模組。 我們的設定不需要任何其他模組,因此我們可以跳過此步驟。 如果您需要將模組匯入或新增至您的自動化帳戶,您需要移至 Azure 入口網站中的自動化帳戶。 從該處,您要選取左側 [共用資源] 標題中的 [模組],然後選取 [新增模組]

編譯 DSC 指令碼

  1. 在 Azure 入口網站中,仍應該顯示 Azure 自動化帳戶的 [概觀] 窗格。

  2. 在自動化帳戶功能表的 [設定管理] 下,選取 [狀態設定 (DSC)]。 您自動化帳戶的 [狀態設定 (DSC)] 窗格隨即出現。

  3. 選取 [設定] 索引標籤。驗證 MyDscConfiguration 設定出現,然後選取該項目。 [MyDscConfiguration 設定] 窗格隨即出現。

    Azure 入口網站的螢幕擷取畫面,其中顯示 [狀態設定 (DSC)] 窗格中可用的狀態設定。

  4. 在命令列中,選取 [編譯]

  5. 在 [編譯 DSC 設定] 對話方塊中,選取 [是]

  6. 檢查您的通知 ([通知] 圖示位於頁首的全域控制項中)。 等候編譯工作顯示 [已完成] 的 [狀態],這可能需要幾分鐘的時間。

    注意

    您可能需要重新整理以查看狀態變更。 若要重新整理,請在 Azure 入口網站的左上方階層連結路徑中,選取自動化帳戶。 [狀態設定 (DSC)] 窗格隨即出現。 在頂端功能列上,選取 [重新整理]。 然後,從清單中選取 [MyDscConfiguration] 設定,以返回 [MyDscConfiguration] 窗格。 在 [編譯作業] 索引標籤下,[狀態] 現在應該會顯示為 [已完成]

    Azure 入口網站的螢幕擷取畫面,顯示設定的編譯工作狀態。

  7. 當編譯完成時,請關閉 [MyDscConfiguration] 窗格。 [狀態設定 (DSC)] 窗格隨即出現。

向您的 Azure 自動化帳戶註冊 VM

  1. [your-automation-account-name] 的 [狀態設定 (DSC)] 窗格中,選取 [節點] 索引標籤。在命令列中,選取 [新增]。 自動化帳戶的 [虛擬機器] 窗格隨即出現。

    Azure 入口網站的螢幕擷取畫面,顯示 [節點] 窗格。

  2. 選取您在本練習的第一個工作中建立的 VM:(myVM)。 設定和 VM 最多可能需要 10 分鐘才會在網路中散佈。 如果未列出 VM,則請等候幾分鐘,然後選取命令列中的 [重新整理],直到其出現為止。

  3. 在命令列中,選取 [連線]。 [註冊] 窗格隨即出現。

    Azure 入口網站的螢幕擷取畫面,其中顯示 [虛擬機器] 窗格。

  4. 針對每個設定輸入下列值。

    設定
    節點設定名稱 在下拉式清單中,選取 [MyDscConfiguration.localhost]
    重新整理頻率 30
    設定模式頻率 15
    設定模式 ApplyAndMonitor
    允許模組覆寫 選取核取方塊
    視需要重新啟動節點 選取核取方塊
    重新啟動後的動作 ContinueConfiguration
  5. 選取 [確定]。

  6. 等到 VM 連線。 此流程可能需要幾分鐘的時間。 在 myVM 連線後,請在入口網站左上方的階層連結路徑中選取自動化帳戶,以關閉 [註冊][虛擬機器] 窗格。 您自動化帳戶的 [狀態設定 (DSC)] 窗格隨即出現。

  7. 在命令列中,選取 [重新整理]

  8. 確認節點 myVM 出現在清單中,且其狀態為 [符合規範]

    Azure 入口網站的螢幕擷取畫面,顯示已註冊 myVM 的 [節點] 窗格。

驗證 VM 上已安裝 IIS

在您的網頁瀏覽器中,前往 http://[public-ip],其中 [public-ip] 是您稍早在此練習中記錄的公用 IP 位址。

您應該會看到預設的 IIS 網頁。  網頁瀏覽器的螢幕擷取畫面,顯示預設 IIS 窗格。

恭喜! 您已成功部署 IIS。 Azure 自動化使用所上傳至 Azure 自動化帳戶的 PowerShell DSC 指令碼。