練習 - 設定 DSC 並設定預期狀態
在此練習中,您將建立 Azure 自動化帳戶,並上傳 PowerShell DSC。 然後,您會將現有的 VM 上線到 Azure 自動化中。 最後,您會檢查 VM 是否遺漏 IIS。 如果是,您會執行程式碼,以在 VM 上安裝及設定 IIS。
建立 VM
從 Windows Server 2022 映像部署新的 VM 開始。
在右側的 [Azure Cloud Shell] 窗格中,執行下列命令來建立使用者名稱,並產生隨機密碼:
USERNAME=azureuser PASSWORD=$(openssl rand -base64 32)
在 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" }
從此輸出複製
publicIpAddress
並加以儲存。 稍後在練習中,您會使用此位址來存取 VM。在 Cloud Shell 中執行下列命令,以針對網路流量開啟 VM 的連接埠 80:
az vm open-port \ --port 80 \ --resource-group "<rgn>[Sandbox resource group name]</rgn>" \ --name myVM
在網頁瀏覽器中,前往 VM
http://[public-ip]
的公用 IP 位址。 雖然連接埠 80 已開啟,但您的連線應該已逾時,並發生This site can't be reached
。 此錯誤是因為 IIS 未部署在 VM 上。 我們將在本練習稍後修正此問題。
建立 Azure 自動化帳戶
使用您啟用沙箱時所使用的相同帳戶來登入 Azure 入口網站。
在 Azure 入口網站資源功能表上或 [首頁] 頁面中,選取 [建立資源]。 [建立資源] 窗格隨即會顯示。
在 [搜尋服務和市集] 文字方塊中,輸入 Automation,然後選取 Enter,以檢視搜尋結果。
在 Automation 搜尋結果中,選取由 Microsoft 發佈的 Automation Azure 服務。
選取建立。 [建立自動化帳戶] 窗格會隨即出現。
針對每個設定輸入下列值。
設定 值 訂用帳戶 指引訂用帳戶 資源群組 在下拉式清單中選取現有的資源群組 名稱 輸入自動化帳戶的名稱。 我們建議使用 [您的姓名縮寫]-automation-account。 在此練習中看到 [your-automation-account-name] 的任何地方,請使用此名稱。 區域 接受預設位置 選取 [檢閱 + 建立],然後選取 [建立]。 等到自動化帳戶部署完成。
在完成部署後,選取 [前往資源]。 資源的 [自動化帳戶] 窗格隨即出現。
建立 DSC 設定指令碼
在 Cloud Shell 中,執行下列命令以啟動 PowerShell 工作階段:
pwsh
在 PowerShell 提示中,執行下列命令,以在程式碼編輯器中開啟名為 MyDscConfiguration.ps1 的新檔案:
code $HOME/MyDscConfiguration.ps1
在檔案中輸入下列程式碼區塊。 此程式碼會建立安裝 IIS 的設定 (如果尚未安裝)。 然後,程式碼會執行指令碼以編譯設定。
Configuration MyDscConfiguration { Node "localhost" { WindowsFeature MyFeatureInstance { Ensure = 'Present' Name = 'Web-Server' } } }
選取 Ctrl+S 以在主目錄中儲存檔案,然後選取 Ctrl+Q 以關閉編輯器。
在 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 指令碼
在 Azure 入口網站中,仍應該顯示 Azure 自動化帳戶的 [概觀] 窗格。
在自動化帳戶功能表的 [設定管理] 下,選取 [狀態設定 (DSC)]。 您自動化帳戶的 [狀態設定 (DSC)] 窗格隨即出現。
選取 [設定] 索引標籤。驗證 MyDscConfiguration 設定出現,然後選取該項目。 [MyDscConfiguration 設定] 窗格隨即出現。
在命令列中,選取 [編譯]。
在 [編譯 DSC 設定] 對話方塊中,選取 [是]。
檢查您的通知 ([通知] 圖示位於頁首的全域控制項中)。 等候編譯工作顯示 [已完成] 的 [狀態],這可能需要幾分鐘的時間。
注意
您可能需要重新整理以查看狀態變更。 若要重新整理,請在 Azure 入口網站的左上方階層連結路徑中,選取自動化帳戶。 [狀態設定 (DSC)] 窗格隨即出現。 在頂端功能列上,選取 [重新整理]。 然後,從清單中選取 [MyDscConfiguration] 設定,以返回 [MyDscConfiguration] 窗格。 在 [編譯作業] 索引標籤下,[狀態] 現在應該會顯示為 [已完成]。
當編譯完成時,請關閉 [MyDscConfiguration] 窗格。 [狀態設定 (DSC)] 窗格隨即出現。
向您的 Azure 自動化帳戶註冊 VM
在 [your-automation-account-name] 的 [狀態設定 (DSC)] 窗格中,選取 [節點] 索引標籤。在命令列中,選取 [新增]。 自動化帳戶的 [虛擬機器] 窗格隨即出現。
選取您在本練習的第一個工作中建立的 VM:(myVM)。 設定和 VM 最多可能需要 10 分鐘才會在網路中散佈。 如果未列出 VM,則請等候幾分鐘,然後選取命令列中的 [重新整理],直到其出現為止。
在命令列中,選取 [連線]。 [註冊] 窗格隨即出現。
針對每個設定輸入下列值。
設定 值 節點設定名稱 在下拉式清單中,選取 [MyDscConfiguration.localhost] 重新整理頻率 30 設定模式頻率 15 設定模式 ApplyAndMonitor 允許模組覆寫 選取核取方塊 視需要重新啟動節點 選取核取方塊 重新啟動後的動作 ContinueConfiguration 選取 [確定]。
等到 VM 連線。 此流程可能需要幾分鐘的時間。 在 myVM 連線後,請在入口網站左上方的階層連結路徑中選取自動化帳戶,以關閉 [註冊] 和 [虛擬機器] 窗格。 您自動化帳戶的 [狀態設定 (DSC)] 窗格隨即出現。
在命令列中,選取 [重新整理]。
確認節點 myVM 出現在清單中,且其狀態為 [符合規範]。
驗證 VM 上已安裝 IIS
在您的網頁瀏覽器中,前往 http://[public-ip]
,其中 [public-ip]
是您稍早在此練習中記錄的公用 IP 位址。
您應該會看到預設的 IIS 網頁。
恭喜! 您已成功部署 IIS。 Azure 自動化使用所上傳至 Azure 自動化帳戶的 PowerShell DSC 指令碼。