阿里CodePipline + gitee + 钉钉 打造DevOps!
先说下最终效果:
本套DevOps搭建好了以后,只需要push到gitee,即可完成服务器自动拉取最新代码,并自动执行打包,自动部署,然后通过钉钉通知成功或失败结果!
本套DevOps大致的流程:
首先是git的push,然后通过webhook通知codepipline,接着codepipline启动slave去git上拉取最新的代码,让slave执行打包命令,然后上传回阿里的OSS,目标服务器从OSS拉取打包好的东西,执行部署命令进行部署,部署成功后通知codepipline,最后通过一个webhook通知钉钉发送成功消息。
配置:
1 CodePipline
1.1 先开通阿里的CodePipline,其实就是阿里自己配置好的一个jenkins,这个CodePipline好像是免费的。。
1.2 新建一个项目如图
1.3 配置你的gitee仓库地址和账号
1.4 选择好gitee的分支,然后填写打包的命令
1.5 填写需要打包的目录(其实就是打包好文件生成的目录的意思),选择自己开通的OSS,勾选失败不上传
1.6 然后先给目标服务器安装一个客户端叫alicloud-salt,安装命令阿里已经给你生成好了直接运行即可,接着选择好目标服务器,填写你的部署命令。这里有几个需要注意的地方:
1 注意他支持的操作系统版本,centos最高只支持到7.3
2 需要先给ECS的安全组开放4505和4506这两个端口
3 注意他这个deployidentifier是他生成的,用来生成一个alicloud-deploy的id,每次都不一样,如果多台ECS共用一个deployidentifier的话下面的列表就会错乱,因为下面的列表是根据这个alicloud-deploy的id来判断选中和未选中。
这个alicloud-deploy的id可以通过修改目标服务器的/etc/alicloud-salt/minion里面的id这个字段,然后重启来修改
1.7 填写这个工作空间,构建物会下载到在这里指定的目录下面,并且部署命令是以此为工作目录执行
1.8 接下来会进入到一个表单页面。。
选择构建的节点和构建的类型,如果不在乎OSS空间的话可以选择带缓存的类型,这样就不会每次都从公共镜像仓库里面拉取包了
1.9 填写源码管理,需要重新填写一下选择gitee(这里可能是一个重复填写的bug。。)
接着先勾选触发器,然后填写分支,再点击生成,接着会生成一个webhook触发器地址给后面的gitee用于触发codepipline,这里先放着
1.10 这里需要重新填写一下工作空间(又是一个bug。。)
1.11 点击提交即可完成codepipline的配置
gitee码云的配置
2.1 先进入到你的项目仓库
2.2 然后选择管理
2.3 选择webhook,点击添加,URL填写之前codepipline生成的webhook,密码空着,选择事件即是触发这个webhook的事件,这里选择push即可
钉钉的配置
3.1 需要用到PC端创建一个机器人。名字可以随便起,然后添加到需要通知的群组。
3.2 完成之后会生成一个webhook地址
3.3 进入到codepipline的配置页面, 选择构建后通知钉钉,填写URL,这里只需要填写accesstoken即可,勾选成功和失败时通知