jrgf 发表于 2018-9-4 09:13:05

基础版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页面

  这里我已经配置了相关权限了,所以会有验证这一流程
  这边发布时不需要运维进行编译这个动作的,所以,我们拿到的是成熟的产品。
  所以这边我们具体要做的步骤是

[*]  把svn上传的具体项目产品down到jenkins的workspace本地
[*]  在jenkins本地建立rsync服务,并且每个项目配置上对应的jenkins模块
[*]  在目标部署服务器上写上对应的rsync同步脚本
[*]  建立2台机器的互信
[*]  编写项目同步后的一系列备份,发布脚本
  完善jenkins页面上的相关动作,测试是否能执行自动化发布
  首先,将目标项目down到jenkins本地,这里需要获得svn的路径和登录svn的账户验证。

  这样之后,构建完成之后,svn上面的指定目录就能同步到项目下了
  其次,建立rsync服务
  安装rsync
  yum installrsync
  配置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
  ##新增配置 开始
   #指定模块,自定义
  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文件即可。错误如下
  # 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发布动作

页: [1]
查看完整版本: 基础版jenkins从搭建到使用教程