使用 Azure Resource Manager 範本來部署 Ubuntu 虛擬機並將其連線至 Azure Arc
本文提供使用 Azure Resource Manager 範本 ARM 範本 將 Ubuntu 虛擬機自動上線至 Azure Arc 的指引。提供的 ARM 範本負責建立 Azure 資源,並在 VM 上執行 Azure Arc 上線腳本。
根據預設,Azure VM 會使用 Azure 實例元數據服務 (IMDS)。 藉由將 Azure VM 投影為已啟用 Azure Arc 的伺服器, 就會建立衝突 ,而不允許在使用 IMDS 時將 Azure Arc 伺服器資源表示為一個。 相反地,Azure Arc 伺服器仍會「充當」原生 Azure VM。
本指南可讓您僅針對示範目的,使用 Azure VM 並將 Azure VM 上線至 Azure Arc。 您將能夠模擬部署在 Azure 外部的伺服器,例如內部部署或其他雲端平臺。
注意
Azure VM 預計不會投影為已啟用 Azure Arc 的伺服器。 不支援下列案例,而且只應用於示範和測試目的。
必要條件
複製 Azure Arc Jumpstart 存放庫。
git clone https://github.com/microsoft/azure_arc.git
將 Azure CLI 安裝或更新為 2.7 版和更新版本。 使用下列命令來檢查您目前的已安裝版本。
az --version
Azure 訂用帳戶: 如果您沒有 Azure 訂用帳戶,您可以 建立免費的 Azure 帳戶。
建立 Azure 服務主體。
若要使用ARM範本部署 Azure 資源,則需要指派具有參與者角色的 Azure 服務主體。 若要建立它,請登入您的 Azure 帳戶,然後執行下列命令。 您也可以在 Azure Cloud Shell 中執行此命令。
az login az account set -s <Your Subscription ID> az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor --scopes "/subscriptions/<Your Subscription ID>"
例如:
az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
輸出應該看起來像這樣:
{ "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "displayName": "http://AzureArcServers", "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
注意
強烈建議您將服務主體的範圍設定為特定的 Azure 訂用帳戶和資源群組。
自動化流程
若要熟悉自動化和部署流程,以下是說明。
用戶編輯 ARM 範本參數檔案(一次性編輯)。 這些參數值會在整個部署中使用。
ARM 範本包含 Azure VM 自定義腳本擴充功能,其會部署
install_arc_agent.sh
殼層腳本。為了讓 Azure VM 成功投影為已啟用 Azure Arc 的伺服器,腳本會:
設定本機OS環境變數。
~/.bash_profile
產生將在使用者第一次登入時初始化的檔案,以設定環境。 此文稿會:停止並停用Linux Azure客體代理程序服務。
建立新的OS防火牆規則,以封鎖 Azure IMDS 對遠端地址的
169.254.169.254
輸出流量。安裝與 Azure Arc 連線的機器代理程式。
拿掉檔案,
~/.bash_profile
以便在第一次登入之後不會執行。
用戶會透過 SSH 連線到 Linux VM,這會啟動
~/.bash_profile
腳本執行,並將 VM 上線至 Azure Arc。注意
install_arc_agent.sh
殼層腳本會啟用 OS 防火牆,並設定傳入和傳出連線的新規則。 根據預設,會允許所有傳入和傳出流量,但封鎖 Azure IMDS 輸出流量至169.254.169.254
遠端位址除外。
部署
如前所述,此部署將使用ARM範本。 您將部署單一範本,負責在單一資源群組中建立所有 Azure 資源,並將建立的 VM 上線至 Azure Arc。
在部署 ARM 範本之前,請使用 Azure CLI 搭配
az login
命令登入。部署使用ARM範本參數檔案。 在起始部署之前,請先編輯
azuredeploy.parameters.json
位於本機複製存放庫資料夾中的檔案。 範例參數檔案位於 這裡。若要部署 ARM 範本,請瀏覽至本機複製的 部署資料夾 ,然後執行下列命令:
az group create --name <Name of the Azure resource group> --location <Azure region> --tags "Project=jumpstart_azure_arc_servers" az deployment group create \ --resource-group <Name of the Azure resource group> \ --name <The name of this deployment> \ --template-uri https://raw.githubusercontent.com/microsoft/azure_arc/main/azure_arc_servers_jumpstart/azure/linux/arm_template/azuredeploy.json \ --parameters <The `azuredeploy.parameters.json` parameters file location>
注意
請務必使用與您在檔案中使用的
azuredeploy.parameters.json
相同 Azure 資源組名。例如:
az group create --name Arc-Servers-Linux-Demo --location "westeurope" --tags "Project=jumpstart_azure_arc_servers" az deployment group create \ --resource-group Arc-Servers-Linux-Demo \ --name arclinuxdemo \ --template-uri https://raw.githubusercontent.com/microsoft/azure_arc/main/azure_arc_servers_jumpstart/azure/linux/arm_template/azuredeploy.json \ --parameters azuredeploy.parameters.json
布建 Azure 資源之後,您會在 Azure 入口網站 中看到它們。
Linux 登入和部署後
現在已建立Linux VM,下一個步驟就是連線到它。 使用其公用IP位址,透過SSH連線至 VM。
第一次登入時,如自動化流程一節所述,將會執行登入腳本。 此腳本已建立為自動化部署程式的一部分。
讓腳本執行,不要 關閉 SSH 工作階段。 工作階段會在完成之後自動關閉。
成功完成之後,新的已啟用 Azure Arc 的伺服器將會新增至資源群組。
清理
若要刪除整個部署,請從 Azure 入口網站 刪除資源群組。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應