首页 > 代码库 > 基础版jenkins从搭建到使用教程

基础版jenkins从搭建到使用教程

陆续使用jenkins已经有段时间了,现在简单描述一下jenkins从搭建到使用的流程。


什么是jenkins

  jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。  

我们做这个所实现的目的,就是让发布的过程自动化,自动的覆盖,自动的跑脚本。


准备环境:jdk1.7   tomcat7    husdom(jenkisn应用) 


首先,将husdom丢入到webapps下,启动tomcat即可登入jenkins页面


技术分享

这里我已经配置了相关权限了,所以会有验证这一流程


这边发布时不需要运维进行编译这个动作的,所以,我们拿到的是成熟的产品。

所以这边我们具体要做的步骤是

  1. 把svn上传的具体项目产品down到jenkins的workspace本地

  2. 在jenkins本地建立rsync服务,并且每个项目配置上对应的jenkins模块

  3. 在目标部署服务器上写上对应的rsync同步脚本

  4. 建立2台机器的互信

  5. 编写项目同步后的一系列备份,发布脚本

完善jenkins页面上的相关动作,测试是否能执行自动化发布



首先,将目标项目down到jenkins本地,这里需要获得svn的路径和登录svn的账户验证。

技术分享


这样之后,构建完成之后,svn上面的指定目录就能同步到项目下了


其次,建立rsync服务


安装rsync

yum install  rsync


配置rysnc服务以及相关内容解释

vim /etc/rsync.conf

#全局参数设置:这部分设置的参数影响整个程序的运行 

uid = root

gid = root

max connections = 0  #同时最大的连接数,0为不限制 

pid file = /var/log/rsync/rsyncd.pid   #记录rsync运行时的进程ID 

lock file = /var/log/rsync/rsync.lock  #以文件的方式锁的方式,保证rsync的一次运行 

log file = /var/log/rsync/rsyncd.log   #rsync日志信息包括启动信息同步信息等 

port = 873                             #可以指定rsync运行时使用的端口,默认使用873(不指定则使用默认)

use chroot = no                        #不使用chroot

#同步模块配置   标记,用于构建项目时自动增加相应配置,重要,勿删   $.module

##新增配置 开始

[wallet_demo] #指定模块,自定义

path = /root/.jenkins/workspace/wallet_demo/wallet-demo/wallet-demo-web/target/wallet-demo    #指定数据存放的路径

comment = backup data 

ignore errors 

read only = false #如果设置为true,则不能上传到该模块指定路径下

list = false #指定当用户查询该服务器上的可用模块时,该模块是否被列出,设定true列出,false隐藏

hosts allow = * #允许所有用户

auth users = root 

secrets file = /etc/rsyncd.scrt #秘钥地址


################################################################################

启动rsync服务


/usr/bin/rsync --daemon  --config=/etc/rsyncd.conf


有时候会报pid已经存在的错误,我们只需删除该pid文件即可。错误如下

[root@vjtest etc]# failed to create pid file /var/log/rsync/rsyncd.pid   #记录rsync运行时的进程ID: File exists

#################################################################################

################################################################################

客户端配置


建立密码文件

vim /opt/rsyncd.scrt


修改到755权限即可


在建立互信的基础上,从服务端向客户端执行同步命令解析

#!/bin/bash

/usr/local/bin/rsync -vlzrtogp --progress --delete root@192.168.10.13::wallet_demo /opt/tomcat/tomcat_wallet_demo50110/webapps/wallet-demo --password-file=/opt/rsyncd.scrt

-v 打印一些信息出来,比如速率,文件数量等

-l 保留软连接

-r 对子目录以递归的模式处理,主要是针对目录来说,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项

-t 保持文件的时间信息

-o 保持文件的属主信息

-g 保持文件的属组信息

-p 保持文件权限

--delete 删除那些源目录中,目标目录没有的文件

--exclude=PATTERN 指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)

--progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等

--password-file 同步所需验证的秘钥文件

技术分享########################################################################################


至于客户端脚本,这里可以直接参考我的脚本就行了,这里不详细解释


建立互信,其实就是更改.ssh文件即可。自行百度


最后就是直接调用服务器后台的各种restart脚本

下面是具体实现的调用展示

技术分享


把这些动作串联起来,实现了基本的jenkins发布动作



基础版jenkins从搭建到使用教程