一,引言

  上一篇讲解到利用 Azure DevOps 将整个 Azure Web App,Azure Traffic Manager profile,Azure Storage Account,Azure Key Vault 部署到 Azure 上,我们也知道整个 Infra 架构已经实现了自动化部署,而 整个项目Web应该却没事实现CI/CD,那么我们今天继续关注 Azure DevOps。

--------------------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 实现自动化部署基础资源(补充)

8,Azure Terraform(八)利用Azure DevOps 实现Infra资源和.NET CORE Web 应用程序的持续集成、持续部署

二,正文

1,Azure DevOps 创建新项目

输入项目名称 “CnBateBlogWeb_Infrastructure_V3”,点击 “Create” 创建项目。

2,配置 Azure DevOps Pipeline

2.1,Continuous integration

选择 “Pipelines=》pipelines”,点击 “Create Pipeline” 创建管道

点击图中圈中的部分,使用经典编辑器创建没有 YAML 的管道

选择 “GitHub”,并且验证连接

Repository 选择项目代码所在的 Repository

Default branch for manual and scheduled builds 选择:“master”

点击 “Continues”,进入下一步

需要选择模板,搜索框中输入 “ASP.NET Core”,选择对应的模板,点击“Apply”

由于我这里演示的 Web 项目没有单元测试,所有可以将 “Test” 整个Task 移除掉

选中当前 “Task”,点击 “Remove” 进行移除。

切换到 “Triggers”,开启 “Enable continuous intergration” 和 “Enable pull request validation”

最后,我们修改当前 pipeline 的名称为 “CnBateBlogWeb_ASP.NET Core-CI”,并且点击 “Save&queue” 保存并且加入到队列

运行 pipeline,点击 “Save and run”

稍等之后,我们可以看到运行成功

2.2,Continuous Deploy

2.2.1,添加 Infra Deploy

选择 “Pipeline=》Releases”,点击 “New pipeline” 创建新的 releases pipeline

首先添加 Infra Stage,我就不过多演示了,大家可以参考

相关 Task

相关参数变量:

Name Value
cnbateblogweb01_appservicename

CnBateBlogWeb01

cnbateblogweb02_appservicename

CnBateBlogWeb02

keyvault  cnbate-terraform-kv8
keyvault_sc  terraform-stste-storage-key
storage_account  cnbateterraformstorage
storage_account_container  terraform-state
storage_account_container_key  cnbate.terraform.stats
terraform_rg  Web_Test_TF_RG

修改 “releases pipeline” 名称 “CnBateBlogWeb_pipeline_CD”,点击 “Save” 进行保存操作

2.2.2,添加 Application Deploy

点击 “+Add”,添加新的 “Artifacts”

选择 “Build”,编辑相关参数

Project 选择:“CnBateBlogWeb_Infrastructure_V3”

Source(build pipeline):"CnBateBlogWeb_ASP.NET Core-CI"

点击 “Add”,确认添加 "Artifacts"

点击 “+Add” 添加 Application Deploy Step

模板选择先点击 “Empty job”,添加一个新的空Job

修改当前 Stage name 为 “Deploy Application”

接下来我们为当前 Job 添加 task

搜索框中输入 “Azure App Service deploy”,点击 “Add”

修改相关参数

Display name:“Azure App Service Deploy: $(cnbateblogweb01_appservicename)”

Azure subscription 选择当前自己的订阅

App Service type 选择:“Web App on Linux”

App Service name:“$(cnbateblogweb01_appservicename)”

Package of folder:选择 "CnBateBlogWeb_ASP.NET Core-CI" 下的项目 Build 成功的 Package or folder,点击 “OK”

接下来我们添加第二个 Azure App Service Deploy

最后,点击 “Save” 进行保存操作

至于项目的 “Artifacts” 的触发方式,大家可以结合自己实际项目,合理选择。当前我不设置任何自动触发机制

3,测试运行 Pipeline,部署 Infra 资源、Application 资源

点击 “Create release”,运行 releases pipeline

点击 “Create” 确认创建

部署成功

我们转到 Azure Portal 查看资源部署情况

访问 "CnBateBlogWeb01"

访问 "CnBateBlogWeb02"

访问 Traffic Manager profile 的 DNS:”http://cnbateblogweb.trafficmanager.net/“

Bingo,成功!!!!!φ(゜▽゜*)♪φ(゜▽゜*)♪*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

三,结尾

  今天我们通过 Azure DevOps 将基础设施资源和应用项目部署到 Azure 上,文中的实践操作比较多,大家要多多练习。本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还希望多多包涵,并且指出不足之处。

参考资料:Terraform 官方azurerm 文档

Terraform_Cnbate_Traffic_Manager github:https://github.com/yunqian44/Terraform_Cnbate_Traffic_Manager

CnBateBlogWeb github:https://github.com/yunqian44/CnBateBlogWeb

作者:Allen

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

Azure Terraform(八)利用Azure DevOps 实现Infra资源和.NET CORE Web 应用程序的持续集成、持续部署的更多相关文章

  1. Azure Service Bus(三)在 .NET Core Web 应用程序发送ServiceBus Queue

    一,引言 在之前上一篇讲解到 Azure ServiceBus Queue 中,我们实地的演示了在控制台中如何操作ServiceBus Queue ,使用 Azure.Messgae.Service ...

  2. 03 持续集成和部署/基础设施 - DevOps之路

    02 持续集成和部署/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi 服务的持续集成和部署这里有两套 ...

  3. 构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境

    构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境 整个环境的结构图. 一.准备工作 gitlab和harbor我是安装在kubernetes集群外 ...

  4. 测试需要了解的技术之基础篇三__持续集成持续交付DevOps

    持续集成.持续交付.DevOps 1.容器技术Docker:容器技术介绍.Docker安装与加速配置.Docker基础命令.Docker搭建selenium.Docker搭建持续集成平台Jenkins ...

  5. Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布

    一,引言 Azure Pipeline 管道是一个自动化过程:但是往往我们由于某种原因,需要在多个阶段之前获得批准之后再继续下一步流程,所以我们可以向Azure Pipeline 管道添加审批!批准流 ...

  6. Azure Terraform(十)利用 Azure DevOps 的条件语句选择发布环境

    一,引言 之前我讲过的所有的案例中,都是将整个Azure Resource 部署到同一个订阅下,没有做到灵活的在 Azure Pipeline 在运行前选择需要部署的环境.在实际的项目开发中,我们也会 ...

  7. 如何利用Azure DevOps快速实现自动化构建、测试、打包及部署

    前两天有朋友问我,微软的Azure好用吗,适不适合国人的使用习惯,我就跟他讲了下,Azue很好用,这也是为什么微软云营收一直涨涨涨的原因,基本可以再1个小时内实现自动化构建.打包以及部署到Azure服 ...

  8. 利用Azure Functions和k8s构建Serverless计算平台

    题记:昨晚在一个技术社区直播分享了"利用Azure Functions和k8s构建Serverless计算平台"这一话题.整个分享分为4个部分:Serverless概念的介绍.Az ...

  9. Azure Web App (一)发布你的Net Core Web 项目

    一,引言 今天我们看一下Azure上的一个服务-----Web 应用,我们都知道云计算的三大模式:Iaas(基础设施即服务),Paas(平台即服务),Saas(软件即服务). Iass,其实就是虚拟主 ...

随机推荐

  1. 【探索之路】机器人篇(3)-给mwRobot建立模型

    在创建一个mwRobot_description程序包那一节中,我们添加了依赖roscpp  rospy std_msgs 和 urdf , 现在我们再添加一个xacro依赖. 如何添加依赖? 打开程 ...

  2. 如何在K8S中优雅的使用私有镜像库 (Docker版)

    前言 在企业落地 K8S 的过程中,私有镜像库 (专用镜像库) 必不可少,特别是在 Docker Hub 开始对免费用户限流之后, 越发的体现了搭建私有镜像库的重要性. 私有镜像库不但可以加速镜像的拉 ...

  3. git基础-git别名

    Git 并不会在你输入部分命令时自动推断出你想要的命令. 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名. 这里有一些例子你可以试试: $ ...

  4. lanmp v2.5一键安装包发布(包括lamp,lnmp,lnamp安装)

    lanmp一键安装包是wdlinux官网2010年开始推出的lamp,lnmp,lnamp(apache,nginx,php,mysql,zend,eAccelerator,pureftpd)应用环境 ...

  5. sql server 用触发器记录增删改操作(转载)

    数据库结构: CREATE TABLE [dbo].[cg_tz_log] ( [logid] int NOT NULL IDENTITY(1,1) , operate varchar(10), -- ...

  6. springboot源码解析-管中窥豹系列之排序(五)

    一.前言 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去. 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot ...

  7. Oracle控制文件多路复用以及Oracle备份重建控制文件

    控制文件中记录了oracle数据库的物理结构,也就是记录了数据库数据文件和日志文件的位置,控制文件中还记录了多种SCN,用这些SCN来确定数据文件和日志文件是否是正确的.如果不正确那么数据库就需要恢复 ...

  8. CTF常见编码及加解密(超全)

    @ 目录 前言 常见CTF编码及加解密 补充 ASCII编码 base家族编码 MD5.SHA1.HMAC.NTLM等类似加密型 1.MD5 2.SHA1 3.HMAC 4.NTLM 5.类似加密穷举 ...

  9. Linux学习笔记 | 配置ssh

    目录: SSH的必要性 将默认镜像源修改为清华镜像源 Linux安装ssh软件 使用putty软件实现ssh连接 Windows下安装winscp SSH的必要性 一般服务器都位于远程而非本地,或者及 ...

  10. 在JavaScript种遇到这样的错误如何解决XML 解析错误:格式不佳 位置:http:/... 行 27,列 32:

    相信很多人在开发的过程中都会遇到在js中解析xml文档的问题.有时候文档解析失败,但就是不知道怎么失败的,哪里格式不对.这里教大家一个方法来排查JavaScript解析xml文档格式出错的办法. 1. ...