一步一步用jenkins,ansible,supervisor打造一个web构建发布系统
来源:互联网 发布:abigail mac 编辑:程序博客网 时间:2024/05/16 14:13
http://blog.csdn.net/hengyunabc/article/details/44072065
一步一步用jenkins,ansible,supervisor打造一个web构建发布系统。
本来应该还有gitlab这一环节的,但是感觉加上,内容会增加很多。所以直接用github上的spring-mvc-showcase项目来做演示。
https://github.com/spring-projects/spring-mvc-showcase
本文的环境用Docker来构建。当然也可以任意Linux环境下搭建。
如果没有安装docker,可以参考官方的文档:
https://docs.docker.com/installation/ubuntulinux/#ubuntu-trusty-1404-lts-64-bit
下面将要介绍的完整流程是:
- github作为源代码仓库
- jenkins做为打包服务器,Web控制服务器
- ansible把war包,发布到远程机器
- 安装python-pip
- 用pip安装supervisor
- 安装jdk
- 下载,部署tomcat
- 把tomcat交由supervisor托管
- 把jenkins生成的war包发布到远程服务器上
- supervisor启动tomcat
- 在http端口等待tomcat启动成功
- supervisor托管app进程,提供一个web界面可以查看进程状态,日志,控制重启等。
在文章的最后,会给出一个完整的docker镜像,大家可以自己运行查看实际效果。
安装jenkins
- 先用docker来启动一个名为“jenkins”的容器:
- 1
- 1
8080是jenkins的端口,8101是spring-mvc-showcase的端口,9001是supervisor的web界面端口
执行完之后,会得到一个Container的shell。接着在这个shell里安装其它组件。
- 安装open jdk 和 git:
- 1
- 2
- 1
- 2
- 下载配置tomcat:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
- 安装jenkins:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- 启动jenkins:
- 1
- 1
然后在本机用浏览器访问:http://localhost:8080/ ,可以看到jenkins的界面了。
配置jenkins
安装git插件
安装Git插件:
https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
在“系统管理”,“插件管理”,“可选插件”列表里,搜索“Git Plugin”,这样比较快可以找到。
因为jenkins用google来检查网络的连通性,所以可能在开始安装插件时会卡住一段时间。
配置maven, java
打开 http://localhost:8080/configure,
在jenkins的系统配置里,可以找到maven,git,Java相关的配置,只要勾选了,在开时执行job时,会自动下载。
JDK可以选择刚才安装好的openjdk,也可以选择自动安装Oracle jdk。
Git会自动配置好。
配置ssh服务
安装sshd服务:
- 1
- 1
编辑
vi /etc/ssh/sshd_config
把
- 1
- 1
改为:
- 1
- 1
重启ssh服务:
- 1
- 1
为root用户配置密码,设置为12345:
- 1
- 1
最后尝试登陆下:
- 1
- 1
安装ansible
在jenkins这个container里,继续安装ansible,用来做远程发布用。
先安装pip,再用pip安装ansible:
- 1
- 2
- 1
- 2
配置ansible playbook
把自动发布的ansible playbook clone到本地:
https://github.com/hengyunabc/jenkins-ansible-supervisor-deploy
- 1
- 2
- 3
- 1
- 2
- 3
在jenkins上建立deploy job
新建一个maven的项目/job,名为spring-mvc-showcase
在配置页面里,勾选“参数化构建过程”,再依次增加“String”类型的参数
共有这些参数:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- “源码管理”,选择Git,再填入代码地址
https://github.com/spring-projects/spring-mvc-showcase.git
- 在“Post Steps”里,增加调用ansible playbook的shell命令
- 1
- 2
- 1
- 2
最后,保存。
测试构建
一切都配置好之后,可以在jenkins界面上,在左边,选择“Build with Parameters”,“开始”来构建项目了。
如果构建成功的话,就可以打开 http://localhost:8101 ,就可以看到spring-mvc-showcase的界面了。
打开 http://localhost:9001 可以看到superviosr的控制网页,可以查看tomcat进程的状态,重启,查看日志等。
如果想要发布到其它机器上的话,只要在
/opt/ansible/jenkins-ansible-supervisor-deploy/hosts
文件里增加相应的host配置就可以了。
其它的一些东东
如果提示
- 1
- 1
则安装:
- 1
- 1
演示的docker image
如果只是想查看实际运行效果,可以直接把 hengyunabc/jenkins-ansible-supervisor 这个image拉下来,运行即可。
- 1
- 1
总结
- jenkins提供了丰富的插件,可以定制自己的打包这过程,并可以提供完善的权限控制
- ansible可以轻松实现远程部署,配置环境等工作,轻量简洁,功能强大
- supervisor托管了tomcat进程,提供了web控制界面,所有运行的程序一目了然,很好用
- 一步一步用jenkins,ansible,supervisor打造一个web构建发布系统
- 一步一步用jenkins,ansible,supervisor打造一个web构建发布系统
- ansible入门安装以及基于Jenkins搭建自动发布系统
- 基于git maven jenkins的自动构建发布系统三
- Java一步一步构建web系统 在IDEA下用Maven搭建多模块项目
- Java一步一步构建web系统 在IDEA下用Maven搭建多模块项目
- 一步一步学会系统发布
- Jenkins构建一个项目
- Jenkins + Pipeline 构建流水线发布
- 打造一个全命令行的Android构建系统
- 打造一个全命令行的Android构建系统
- 一步一步构建java web项目
- 用文本+ASP打造新闻发布系统
- 用文本+ASP打造新闻发布系统
- 用文本+ASP打造新闻发布系统
- 使用ansible搭建自动发布系统
- 使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置
- 在OsX系统上使用Jenkins自动构建发布Unity3d的iOS版本到fir.im
- Toast工具类,解决一直谈吐司问题
- 第一个android项目(掌上运维VoLTE)
- 阿里云Centos系统 配置php环境
- PAT_乙级 1034 有理数四则运算
- linux的top命令参数详解
- 一步一步用jenkins,ansible,supervisor打造一个web构建发布系统
- HDU 1000 A + B Problem (Java)
- An Improved Reflective DLL Injection Technique
- 关于 Android 获取本地音频的坑2
- MySQL行级锁、表级锁、页级锁详细介绍
- 百度地图InfoWindow事件绑定
- 常见sql整理 常见hive sql整理
- android 跑马灯效果 自定义View
- CAS SSO改造步骤(3)