Azure

建構管道 ARM 模板 - TFS 2018

  • November 30, 2020

我的客戶使用TFS 2018 作為他們的 CI/CD 工具。我知道您可以使用 TFS 將ARM 模板部署到Azure,但我以前從未這樣做過。我通常只使用門戶或 powershell。我知道我需要創建一個管道來執行部署,但我還有一些其他問題讓我感到困惑:

  1. 如果基礎設施沒有改變(或幾乎沒有改變), ARM 模板是否需要建構和發布 管道(兩者)?我的印像是大多數人使用建構管道來驗證模板或他們的程式碼,然後發布是部署到天藍色或任何地方。
  2. 我可以使用一個包含我所有資源的單個 ARM 模板進行部署,還是必須****部署單個模板(ASP,然後是 Web 應用程序,然後是儲存帳戶,然後是 Redis)?
  3. 在我部署任何東西之前需要一個**資源組。**我是否可以在 ARM 模板中包含其他所有內容(RG + 一個模板中的所有資源)中的資源組創建步驟,或者我需要一個 RG 模板,然後是其他模板?
  4. 如果它們是多個環境(開發、測試、產品),我是否需要為每個環境提供****多個建構/發布管道,或者是否可以配置指向每個環境的管道?每個環境中的資源都會有不同的命名約定,所以除了必須更新 ARM 模板中的值之外,我不確定這會如何影響其他事情。

對於上述問題,我將不勝感激任何建議/建議,謝謝!

首先,我建議您先熟悉使用 ARM 模板並在本地部署它們,然後再嘗試從 Azure DevOps 進行操作。這將幫助您了解正在發生的事情並確保您的模板在添加 Azure DevOps 的額外複雜性之前正常工作。您可以從 PowerShell 或 CLI 部署 ARM 模板。

要回答您的問題:

  1. 你可以使用任何一個。不需要使用建構或發布管道,ARM 模板部署都可以使用。選擇通常取決於您的流程以及您希望部署如何工作。建構管道通常為測試創建資源或作為建構的一部分,而發布通常用於發布應用程序和支持階段、門等。所有這些,我還建議查看基於 YAML 的較新的管道,它消除了建構和發布之間的區別,因為這是未來的重點。
  2. 你可以做任何一個。您可以擁有一個可以完成所有工作的大型 ARM 模板,只需確保在模板中設置了您的依賴項,或者您可以擁有多個模板。如果您有多個模板,您可以在 Azure DevOps 中將它們作為一個步驟一次執行,或者您可以使用嵌套模板讓您的頂級模板呼叫子模板。
  3. 您可以將資源組創建為 ARM 模板的一部分,但它確實使它有點複雜。ARM 模板有多個範圍,大多數資源是在資源組範圍內創建的(就像它們在資源組內一樣),但資源組是在訂閱範圍內創建的(它們位於訂閱內)。要在您的模板中創建這兩者,您需要在訂閱範圍內執行部署,然後使用嵌套模板來部署您的資源範圍項。我在此處詳細說明瞭如何執行此操作
  4. 如果您想在單個管道中部署到多個環境,您可以這樣做,您需要使用發布管道(而不是建構)或 YAML 管道。這兩個都支持使用“階段”,其中每個階段都可以是一個環境。然後,您可以按照您喜歡的順序部署到每個環境。您可以在此處找到有關發布管道的詳細資訊,並在此處找到 YAML 的詳細資訊。

引用自:https://serverfault.com/questions/1043106