GitLab+MsBuild IIS场景迁移
本节介绍的迁移场景为:
- 编程语言:C#。
- 源码托管在GitLab私有库中。
- Jenkins任务使用MSBuild构建工具。
- 运行在Jenkins服务器的Windows节点。
- 部署目标机需要提前安装IIS环境,并提前安装配置好产品运行所需要的MYSQL数据库。在Jenkins服务器中执行Power Shell脚本,实现一键自动部署。
本节中各迁移步骤涉及到的服务及功能如下表所示:
迁移步骤 |
Jenkins |
DevCloud |
---|---|---|
步骤一:源码管理迁移 |
GitLab托管 |
DevCloud代码仓库服务托管 |
步骤二:MSBuild构建迁移 |
Jenkins(Windows节点)的任务中选择MSBuild构建步骤 |
DevCloud中创建MSBuild构建任务 |
步骤三:授信主机迁移 |
通过Power Shell脚本获取部署主机操作权限 |
DevCloud中主机组授信 |
步骤四:IIS部署迁移 |
在部署主机上执行shell命令部署 |
通过DevCloud提供的原子步骤组合部署 |
步骤一:源码管理迁移
本节采用代码仓库是自建的GitLab代码仓库,如下图所示:
在新进行构建任务迁移前,源码迁移可采取以下两种方式:
方式一:通过华为云DevCloud的提供的导入外部仓库功能,直接进行线上导入。
方式二:先将GitLab上的代码仓库下载到本地,然后通过GitBash命令行上传到华为云DevCloud代码仓库。具体迁移操作请参考GitLab迁移至DevCloud。
步骤二:MSBuild构建迁移
- 构建任务迁移
本节采用的案例中,Jenkins使用的MSbuild构建环境版本信息如下:
构建环境
Jenkins配置路径
本文案例使用的版本
MSBuild
系统管理 > 全局工具配置 > MSBuild
VS2015
操作步骤如下:
- 进入DevCloud项目,在“新建任务”,输入任务名称,单击“下一步”。 页面单击
- 源码源选择“DevCloud”,源码仓库选择在步骤一中迁移的仓库,分支选择“master”,单击“下一步”。
- 构建模板选择“MSBuild”,单击“确定”,系统将自动跳转至“构建步骤”页面。
- 编辑构建步骤“Maven构建”:
- 根据Jenkins中的构建环境,选择相应的工具版本。
- 根据Jenkins待迁移任务“构建”页面“执行Windows批处理命令”命令行,在powershell命令窗口输入相应的构建命令。
- 构建包迁移
- 进入Jenkins待迁移任务,在“构建后操作”页面查看归档路径。
- 返回DevCloud构建任务,编辑构建步骤“上传软件包到软件发布库”,根据Jenkins设置输入构建包路径,单击“保存”。
- 单击“保存并执行”,任务构建成功后,在 页面可搜索到生成的构建包。
- 进入Jenkins待迁移任务,在“构建后操作”页面查看归档路径。
步骤三:授信主机迁移
本节采用的案例中,Jenkins中是在Powershell下,通过主机用户名、密码获取主机session,最终获得的主机操作权限。
在DevCloud中,部署前的主机组配置操作步骤如下:
- 参考主机配置,根据Jenkins任务使用的部署主机操作系统类型完成配置。
- 进入DevCloud项目,在“新建主机组”,根据页面提示输入必要信息,单击“保存”。 页面单击
- 单击“添加主机”,在弹窗中输入主机信息,单击“添加”保存。
部署主机中原有的IIS环境无需更改。
步骤四:IIS部署迁移
本节采用的案例中,Jenkins部署任务是在Powershell下,将构建包解压至IIS服务中,执行web.ps1脚本后重启IIS服务。
Jenkins部署任务设置主要通过脚本实现,本节案例中采用的脚本如下:
根据Jenkins部署方式,创建DevCloud部署任务如下:
- 进入DevCloud项目,在“新建任务”,输入任务名称,单击“下一步”。 页面单击
- 部署模板选择“不使用模板,直接创建”,系统将自动跳转至“部署步骤”页面。
- 根据上面的脚本文件,添加以下部署步骤并进行配置,单击“保存”。
