之前一篇文章有讲解到利用 利用Azure DevOps 实现自动化部署基础资源,当时 TF 代码没有针对 Azure 各个资源的封装,所有的资源代码全部写在一个 main.tf 文件中。然后还有讲到 Azure Resource Common Module 的 TF 代码的封装。之前还在Azure Terraform 第四节讲到利用 Azure Storage 远程状态文件存储。那么今天我们尝试将封装过 Common Module 的 TF 代码,结合 TF 状态文件远端存储,实现自动化部署基础资源
--------------------Azure Terraform 系列--------------------
1,Azure Terraform(一)入门简介 2,Azure Terraform(二)语法详解 3,Azure Terraform(三)部署 Web 应用程序 4,Azure Terraform(四)状态文件存储 5,Azure Terraform(五)利用Azure DevOps 实现自动化部署基础资源 6,Azure Terraform(六)Common Module 7,Azure Terraform(七)利用Azure DevOps 实现自动化部署基础资源(补充) 二,正文 1,Azure DevOps 创建项目输入项目名称 “CnBateBlogWeb_Infrastructure_V2”,点击 “Create” 创建项目。
2,配置Azure DevOps Release Pipeline 环境 2.1,添加 Release Pipeline选择 “ Pipelines=》Releases”,点击 “New pipeline” 创建新的 pipeline
模板选择 “Empty job”,并且点击图中箭头所指的 “x” 关闭页面
Stage 页面,输入新的 Stage name:“Deploy Infra”,并且关闭此页面
2.2,添加 Artifacts接下来需要添加 “artifact”,点击图中的 “+ Add an artiface”
选择 ”GitHub“ ,
Service 添加新的 connection:"github_connection_xxxxx"
Source(repository)选择:TF 代码库
Default branch:“remote_stats”
Default version:”Latest from the default branch“
点击 "Add" 添加 artifact。
2.3,添加 task接下来添加 ”Deploy Infra“ Stages 相关 task
2.3.1,创建远程存储相关 job点击图中圈中的 ”+“,添加 new task,并且在右边的输入框中输入 ”Azure CLI“,选中图中的 ”Azure CLI“
注意,之前在 一篇文章中讲到远端存储时,需要提前创建 Azure Storage Accunt 和 Azure KeyVault。Azure Storage Account 的 Container 中用来存储 TF 的状态文件,Azure KeyVault 存储 Azure Storage Account 的 access_key(访问密钥),之前是手动创建,主要是为了给大家演示。今天,我们通过 Azure CLI 创建快捷操作,并且 Azure CLI 这个 task 移至 Azure Releases Pipeline 中。
输入相关参数:
Display name:”Azure CLI :Create Storage Account,Key Vault And Set KeyVault Secret“
Azure Resource Manager connection:选择自己的订阅 id
Script Type(脚本类型)选择:”Shell“
Script Location(脚本位置)选择:”Inline script“(内联脚本)