目标:jenkins 上点构建(也可以自动检查代码变化自动构建)》》》项目部署完成。
一、安装 jenkins
1. 下载 jenkins
这里我选择的是 war 包安装 jenkins,简单不伤脑,别的博客写的 jenkins 版本都很旧,没用最新的,写个比较新的配置 2.20 版。
官网:https://jenkins.io/index.html
WAR 包下载地址:http://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.20/jenkins.war
http://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.32.3/jenkins.war
2. 安装 jdk 环境
最新的 JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 没账号注册一个,很快的
jdk-8u121-linux-x64.tar.gz
这里选择 Linux64 位后缀 tar.gz 的复制下载链接, 在服务器上解压配置环境变量 vim /etc/profile 写在最后面
JAVA_HOME=/data/java/jdk 的目录名字 #java 目录是我创建的,把 jdk 包解压到里面,这个写解压位置的绝对路径
CLASSPATH=$JAVA_HOME/lib/
PATH=$JAVA_HOME/bin:$PATH #谨慎,这里 PATH 写错了会发现命令都得打绝对路径才能用,悲催
export PATH JAVA_HOME CLASSPATH
配置没问题完成保存,source /etc/profile 让配置的环境变量生效,这时候可以打命令 java -version 看看版本,是不是出 java version "1.8.0_***", 如果是 1.6 什么的说明没生效,看看解压的路径。
3. 安装 tomcat
下载地址:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.75/bin/apache-tomcat-7.0.75.tar.gz
这个什么版本都可以,别太旧了,旧的会有漏洞,解压完成试试能不能用,tomcat 目录里面 bin 目录下,./catalina.sh start 启动,访问一下,不能访问基本都是防火墙问题,能出现 tom 猫界面就可以停了,可以./catalina.sh stop, 也可以找到进程 pid,kill-9 pid 号,进到 webapps 目录里面删除所有,把之前的 jenkins.war 拷进来,启动 tomcat。我用的 8080 端口访问地址为 http:// 公网地址:8080/jenkins
在服务器上面 cat /root/.jenkins/secrets/initialAdminPassword 会出现让输入的密码,一串数字字母,多等一会到出现下面界面,喝了口水,三分钟过去了,出现了接下来的界面
这个就是说推荐安装还是自己选,需要的包后面可以装,我点了第一个,知道用什么插件点第二个也可以这样装的包少一点。安装的插件都在 /root/.jenkins/plugins/ 下面。
直接选择 continue as admin
开始使用,点击就会进来
admin 用户登录还不知道密码是什么,我猜是 /root/.jenkins/secrets/initialAdminPassword 这个里面的密码,http:// 这个地方打 ip:8080/jenkins/user/admin/configure 修改 admin 密码,也可以点系统管理,在里面找管理用户,点屏幕中上方的 admin 进去最下面修改密码保存。
二、安装 Maven(用来构建项目)
官网地址:http://maven.apache.org/download.cgi
配置环境变量:vim /etc/profile 写到最后,我用的 3.3.3 的版本
export M2_HOME=/data/apache-maven-3.3.3
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
三、安装 git
下载地址:https://github.com/git/git/releases
噗,下载地址想下载可以下载,然后编译安装,git 主要是用于 jenkins 用 git 命令获取我们自己搭建的 gitlab 上面的代码,我 yum install git 了,这有个问题还报错了,一定要看好 git 可以用的命令绝对路径在哪里,yum 装的在 /usr/bin/git,你可以试下 /usr/bin/git --version,不管是 1.7 版还是 2.3 版能用就可以。
四、配置 jenkins
jenkins 因为配置原因出错千千万,一步一报错,天天有惊喜,下面配置是把坑都填好的。
1. 添加插件
选择可选插件,过滤搜索
选择直接安装也可以,重启后安装也可以,用什么功能搜一下安装没,没安装装上就好,我看了已经安装的,比自己选安装的安装的多很多。。。
很多教程都装 Deploy to Container Plugin,这个可以把包从运行的 tomcat 的项目 http 地址上直接发到项目服务器的目录下,windows 上我试了可以,linux 这个东西没用它,都是 linux 服务器 scp 过去就好了,windows 上面包发过去了不会写脚本,还是 shell 脚本简单。
2. 工具配置
jdk 别名叫啥都可以,路径写对,写你 jdk 环境变量配置的路径,写错了会出现 ERROR: Failed to parse POMs java.io.IOException: Cannot run program*** 错误
git 的地址要写的是 git 这个命令的地址不是目录的地址,yum 装的自然是 /usr/bin/git,之前不是 yum 装的装的写 /usr/local/git 报错找不到 git 命令,在服务器各种试 git 都没问题,看配置以为 jenkins 看不见呢,装了好几个版本的 jenkins,找了 N 久才找到应该写 /usr/local/git/bin/git
写完保存就好,接下来系统配置
3. 系统配置
这个配置费劲九牛二虎之力,在 N 次报错后遍寻错误无解时候,在系统提供的英文文档里面偶然看到其中一个回答,好长好长看到其中一句,试了试竟然成功了,沃德天!
五、构建项目
点击新建,出现下图,名字随便起,选择构建一个 maven 项目
连接 git,我们是自己搭的 gitlab,需要在 gitlab 上搜索 ssh 或者 key,找到一个 ssh keys 字样的,把 jenkins 服务器的公钥放在上面,另外
这个里面添加一个 jenkins 服务器 root 用户的私钥
发现 gitlab 服务器的私钥也可以,估计是因为 gitlab 页面上也放了 gitlab 的公钥,看来配对的公私钥就可以,有兴趣的可以试试。
选择这个这里面可以写脚本,我下面写这个相当于脚本里的命令去远程执行另一个脚本
写完好久了,今天 jenkins 做了一个迁移,完善前面的,把后面的再补上
如图,后面的功能都是用脚本写的,jenkins 和 org 互相做了免密登录,在 jenkins 上可以直接用 /usr/bin/ssh root@org 的 ip "要执行的命令"
/bin/bash /dat****/org.sh 在 org 上执行这个脚本
过程:jenkins 调用 git 把 Gitlab 上的代码下载到 jenkins 服务器,maven 构建成 war 包,调用 ssh 运行 shell 脚本完成备份,停服务,清 webapps,拷 war 包到 tomcat 下,起服务,说起来好简单啊。。。
自己摸索着搭,各种找错误,搭了两星期才搭好,今天迁到别的服务器上几个小时就搞定了,经过几个月的使用,jenkins 确实是自动化的利器,写好脚本一键搞定