3

git插件安装

进入菜单"jenkins>系统管理>管理插件>可选插件",在右侧搜索栏输入"Git Plugin",也可以搜索安装"GitHub plugin"或"SVN Publisher plugin"

但事实上我下载安装时一直报错

java.io.IOException: Could not find JSON in http://updates.jenkins-ci.org/update-center.json?id=default&version=2.16

折腾很久未能解决,最后自已到http://mirror.xmission.com/je...下载需要的插件。参考jenkins wiki:https://wiki.jenkins-ci.org/d...

下载到hpi文件到jenkins主目录下的plugins,同时要下载依赖插件,例如git plugin依赖bouncycastle-api和git client(在控制台安装失败时,可以看到要安装的依赖插件),才能安装成功。

$ cd /var/lib/jenkins/plugins
$ wget http://mirror.xmission.com/jenkins/plugins/git/latest/git.hpi

然后重启jenkins,登录jenkins,进入“jenkins>系统管理>管理插件>已安装”,可以看到Git plugin已成功安装。再重新进test-build-job配置,源码管理已经出来git。最后回到plugins目录把.hpi文件删除。

接下来将jenkins master的公钥添加到git服务器上,公钥在/var/lib/jenkins/.ssh/id_rsa.pub,生成公钥可参考Jenkins slave节点机器配置

图片描述

创建连接git的credentials,创建请参考Jenkins控制台slave配置

maven安装配置

接下来安装maven

$ cd /usr/local
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

解压

$ tar -zvxf apache-maven-3.3.9-bin.tar.gz

进入菜单“jenkins>新建”

图片描述

配置jdk和maven settings.xml路径

图片描述

创建一个在java master上用maven打包项目的job

进入菜单“jenkins>新建>构建一个自由风格的软件项目”

图片描述

进入配置,根据情况配置历史构建保存的天数和个数,指定jdk以及执行该job的机器,这里指定了master

图片描述

git配置,填写git项目地址和上一节提到的credentials,我要部置的项目分支是master

图片描述

maven配置,以及maven构建完成后,执行脚本将war包放到目录/var/lib/jenkins/userContent,插件Copy To Slave Plugin会从该目录下载war包到slave

脚本还包含一个备份功能,将userContent下的war包名称添加日期后缀进行重命名,同时检查war包个数,超过10个时删除最旧的那个

图片描述

最后在构建完成后,配置要触发的另一个job,这个job用来下载master机器的war包到和个slave节点,并执行tomcat重启。同时指定构建失败后要发送邮件的邮箱,以空格隔开

图片描述

第一个job完成

创建下载war包到slave节点并完成tomcat重启的job

进入菜单“jenkins>新建”,选择构建一个多配置项目

图片描述

进入配置,general和上一个job类似

图片描述

配置需要部署的slave节点

图片描述

指定下载war包的目录,这块需要先安装插件copy-to-slave

图片描述

下载完成后,执行发布脚本。先从工作空间取出war包到tomcat的war存放目录,我这里配置的是/www/web,同时做一个备份。然后先关闭tomcat,保证杀死tomcat进程,然后删除tomcat root目录,再启动tomcat

图片描述

最后同样可以配置job执行失败的邮件通知

邮件通知配置

需要先安装插件Email Extension Plugin,进入菜单“jenkins>系统管理>系统设置>邮件通知>高级”,设置用于发送邮件的邮箱和密码

图片描述

整过部置过程结束

注意点

  1. 部署过程涉及到的文件和程序都应该为jenkins用户所拥有或者有相关权限,不然会报权限错误;

  2. slave 80端口只能由root占用,所以这里tomcat用8080启动,然后在root安装nginx,将请求转发到8080,后续有时间再写写相关实践。


LikeDege
135 声望4 粉丝