- docker构建jenkins中已经利用docker成功部署准备jenkins,接下来就是利用版本控制工具svn与jenkins远程部署node项目。">在 1.docker构建jenkins中已经利用docker成功部署准备jenkins,接下来就是利用版本控制工具svn与jenkins远程部署node项目。
在 1.docker构建jenkins中已经利用docker成功部署准备jenkins,接下来就是利用版本控制工具svn与jenkins远程部署node项目。
部署环境
- centos:7 虚拟机
- jenkins: docker镜像 2.176.2
- docker version : client /server都是1.13.1
- 假设你电脑已经安装了docker,并且了解一些docker 的操作,docker安装可见此处
流程大概:svn监听commit操作。通过请求触发构建jenkins 工程, 在构建的时候,通过ssh远程操控服务器执行命令,命令里执行代码更新,打包镜像,服务重启等操作。整个流程大概是这样
1. jenkins构建工程
新建任务,选取一个自由风格的软件项目
填写普通信息
配置源码管理(这里使用svn)
构建触发器
这一步是将配置svn触发构建的配置,在上面“流程大概”中,说到通过请求触发构建jenkins 工程,其中请求就是需要配置的。<br />![image.png](https://cdn.nlark.com/yuque/0/2019/png/286007/1567676208543-8cc463f9-bdae-4354-b2fd-a7d5575b9722.png#align=left&display=inline&height=128&name=image.png&originHeight=307&originWidth=1428&size=40671&status=done&width=594)<br />身份证令牌(token)用来构建请求参数,完整请求路径根据提示信息拼凑为:http://{jenkins服务ip}:{jenkins服务端口}/job/cicd/build/?token=123456<br />我们只要在svn 提交,访问这个请求,就能触发构建
构建环境
这步不需要
构建
触发构建然后干嘛,这步我们配置构建的时候完成的事情<br /> **![image.png](https://cdn.nlark.com/yuque/0/2019/png/286007/1567676840318-abb59791-6f7f-46db-82da-f7c5bd767e4d.png#align=left&display=inline&height=257&name=image.png&originHeight=688&originWidth=1439&size=59478&status=done&width=537)**<br />在这里我们在构建时候发送给服务器的命令是创建文件夹,而其中的ssh服务需要配置在下面会讲到。
构建后操作
这步不需要
2. svn添加钩子
在构建流程中我们希望在代码提交的时候,能让jenkins给远程的服务器执行命令,那么需要在svn配置触发jenkins的执行文件。
添加触发文件
[如何在centos构建svn服务](https://www.yuque.com/docs/share/441f4864-df43-4a24-80f7-3b8c54bd1d11)?<br /> 在svn的仓库环境svntest(我构建了一个仓库svntest)中的hooks文件夹中新建文件post-commit<br /> ![image.png](https://cdn.nlark.com/yuque/0/2019/png/286007/1567677931411-23f10e07-2806-4389-9811-98d09625dfd3.png#align=left&display=inline&height=90&name=image.png&originHeight=103&originWidth=377&size=7098&status=done&width=331)<br />![image.png](https://cdn.nlark.com/yuque/0/2019/png/286007/1567677965369-2c7ed0cc-897e-4b23-b4bc-46e34102400b.png#align=left&display=inline&height=63&name=image.png&originHeight=92&originWidth=800&size=10028&status=done&width=552)
在post-commit文件中添加执行的命令
curl -X post -v -u username:password http://ip:port/job/cicd/build/?token=123456
这个命令中 -u username:password 是指jenkins的登录密码账户 后面的请求地址就是上面的构建触发器所配置的,
- 重启svn
3. 配置jenkins ssh远程构建工程
为什么要使用ssh?因为我们的jenkins服务也是docker容器服务的。实际上我们可以在构建的步骤中选择直接构建命令,但是其中的命令执行环境是容器中的,比如执行的远程命令是docker run ,而在jenkins容器中是没有docker的,那么执行命令必然错误,当然你可以对jenkins镜像commit,但是不建议,我使用jenkins只是使用它的服务。
其构建时的反应是:
所以我使用ssh来执行脚本,因为我的jinkins也是容器。
安装Publish Over SSH 插件
这个按照前面的教程应该有。
-
进入系统管理==》系统配置 ==》publish Over SSH(这个下拉就能看到)
4. 将步骤串联起来,测试
将以上的步骤配置好,记得应用和重启相关服务和配置,这里就不多说了
总结
流程步骤理解起来很简单,但是每一个步骤对于新手都是难点,他牵扯了多方面,在下一篇第三篇优化一下,正式容器化项目,使用docker-copmse来管理服务。