Azure DevOps 跨賬號連接 Azure 服務

一,引言

  由於新申請的 Azure DevOps 賬號中的私有項目不在享受託管代理提供的1800分鐘的免費時間,又不想花錢付費,那我們只能另想版本解決沒有並行作業的問題。

——————– 我是分割線 ——————–

新組織中的私有項目無法獲得1800分鐘的免費試用期限

於是,我們只能利用舊的Azure DevOps 連接到新的 Azure 賬號的訂閱上。通過我的調查。Azure DevOps 和 Azure 的關聯是可以通過 Azure DevOps 上的手動管理 Service connections。既然如此,我們嘗試利用手動管理類型為 「Azure Resource Manager」 的服務連接。

二,正文

1,創建可用的Service Principal並設置其權限

1.1,創建服務主體

  創建 Service Principal(服務主體)的方式,我之前都講過的,可以通過 Azure CLI 登錄到Azure 上,利用  az sp create ……. 進行創建,還可以手動進行創建,今天我們手動演示如何創建Service Principal。

首先,我們登錄到Azure Portal 上,在 Azure Active Directory 上註冊應用程序,首頁左側菜單點擊 「Azure Active Directory」

選擇 「Manage=》App registrations」,點擊箭頭所指的 「+ New registration」

輸入 display name “Allen_ServiceConnection”,點擊 「Register」

創建完成後,就可以跳轉到當前註冊的 application 頁面。接下來,我們需要為當前應用創建密碼

選擇 「Manage=》Certificates & secrets」,點擊 「+ New client secret」

在添加客戶端密鑰頁面,需要我們輸入相關參數

Description:「Allen_ServiceConnection_Secret」

Expires:「24 months」(可以根據自己的實際情況選擇過期時間)

點擊 「Add」

創建完成後,我們儘快複製當前應用的客戶端密鑰的值(切記),一旦刷新頁面重新切換到當前頁面,我們就不能再複製密鑰的值了。

1.2,設定 Service Principal 的權限

我們都知道在之前介紹的利用Azure CLI 創建 sp 的時候,給的角色為 「Contributor」,範圍為 「當前subscription」。同樣的,我們手動也需要為當前應用添加對應的權限

找到當前訂閱,選擇 「Access control」,切換到 「Role assignments」,點擊 「+Add」

點擊 「Add role assignment」(角色分配)

輸入相關角色分配的參數

Role  選擇:『Contributor「

Assign access to:」User,group,or service principal「

Select 輸入:」Allen_ServiceConnection」,並選擇當前會員

點擊 「Save」 進行保存操作

同時我們可以在當前角色指派頁面看到添加的信息

2,Azure DevOps 中創建Service connection

我們嘗試創建一個新的項目 “CnBateBlog_Test”,並且點擊左下角的 「Project Settings」

找到 「Pipeline=》Service connections」,點擊 「Create service connection」

選擇 「Azure Resource Manager」,並且點擊 「Next」

Authentication method(驗證方式) 選擇 「Service principal(manual)」,點擊 「Next」

大家需要注意的是,如果選擇自己對於的 Azure 環境,如果跟我一樣,那麼就可以跟我選擇一樣的 「Azure Cloud」

接下來需要輸入剛剛創建好的 Service Pricipal 的信息

Scop Level 選擇:「Subscription」

Subscription Id:「xxxxxxxx」(自己的訂閱ID)

Subscription Name:「Visual Studio Enterprise」(輸入自己的訂閱名稱)

Service Principal Id 輸入剛剛在 Azure Active Directory 中註冊的 App 的 Id

Credential (憑據) 選擇:「Service principal key」

Service principal key 就是剛剛創建的 application 的Client Screct

Tenant ID:「當前sp 的租戶 id」

輸入完 sp 的信息,我們可以先點擊 「Verify」 驗證一下,沒有問題的話再輸入其他參數

Service connection name:「Allen_ServiceConnection」

點擊 「Verify and save」(保存之前,我們得保證手動輸入的sp 的信息都是正確的

驗證保存完成後,我們可以看到手動創建好的 Service connection 

3,驗證Service connection 的可用性

測試的項目還是  CnBateBlogWeb

Azure DevOps 中創建 Release Pipeline,並且設置相關參數

記得配置 App Settings 信息,最後點擊 「Create release」

等待部署完成之後,我們先查看部署狀態

並且複製 「cnbateblogweb01」 的 URL 在瀏覽器中嘗試訪問

訪問成功!!!

三,結尾

參考資料:Azure Pipeline管理服務鏈接

github://github.com/yunqian44/CnBateBlogWeb

作者:Allen 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。