要安装jenkins,需要下载jenkins的rpm包,虽然可以使用docker安装,但这里不推荐。
jenkins rpm包的下载地址为http://pkg.jenkins-ci.org/redhat/
建议下载最新版jenkins-2.190-1.1.noarch.rpm
在安装之前需要先安装jdk 8,maven
jdk地址https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
maven地址http://maven.apache.org/download.cgi
下载解压jdk和maven之后,编辑/etc/profile文件(你的安装路径根据你自己的喜好决定)
export JAVA_HOME=/home/java/jdk1.8.0_221
export MAVEN_HOME=/home/maven/apache-maven-3.6.1
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存后执行source /etc/profile
安装git
yum install git
然后是安装jenkins
rpm -ivh jenkins-2.190-1.1.noarch.rpm
安装启动之前请做如下修改
service jenkins start启动服务。
打开浏览器访问你服务器的ip和端口之后,经过一路next进入这个画面
点Manage Jenkins后,进入该画面
我们需要先安装插件,在可选插件中搜搜maven,安装如图插件是必须的,点直接安装即可。
再重新搜索SSH,此处大写,再安装Publish Over SSH,是为了给远程其他服务器安装设置ssh登录的
要进行远程部署,需要先将你的服务器之间设置ssh免密码登录,具体可以参考如何在多台服务器添加ssh的免密码登录
安装完以上插件,在进行一次部署之前,需要先设置一些常用工具的配置
点进去之后,可以设置需要用到的jdk,maven,git
设置完成之后点保存
我们可以开始尝试第一次构建
输入构建名称,选“构建一个maven项目”
进入构建页面后,可以先填一个描述名称
源码管理选择Git,填入你的git地址,用户名,密码以及分支(默认为master,我这里为huaweiyun分支)
此处为maven设置,我们在此构建的命令为clean package -Dmaven.test.skip=true,意思为清理,打包,跳过测试
保存后,就可以开始我们的第一次构建
构建会出现构建日志
类似于本地打包一样,构建一次就会去gitlab拉取代码,然后使用maven进行编译,打包成jar包。
虽然构建成功了,但我能需要对构建后的jar包进行部署,我们先采用shell命令的方式对jenkins安装的服务器进行一次部署
点配置,进入之前的配置界面
选择Run only if build succeeds,Add post-build step选择“执行shell”.
填入shell语句如下
cp /var/lib/jenkins/workspace/车福管家/register-center/target/register-center.jar /home/soft/regist/
docker stop register
docker rm register
docker rmi repo/register
cd /home/soft/regist
docker build -t repo/register ./
docker run -d --name register --net=host repo/register
重新构建后,将会开始部署,结果如下
/home/soft/regist目录结构如下
具体Dockerfile可以参考如何创建一份springboot的docker镜像
如果我们需要把jar包发送到其他服务器进行部署,这就需要进行远程ssh管理
要进行远程发布,就必须配置我们之前安装到Publish Over SSH
点击配置系统,进入如下到界面(拉到最底端)
填入你其他服务器的ip,用户名,你要把jar包拷贝到文件夹
点高级
填入你远程主机的密码
保存后重新创建一个构建项目
在最后一步选择如图所示的选项
SSH Server是我们刚才设置进去的
Source files是maven生成jar包的目录,我这里为: /var/lib/jenkins/workspace/车福管家配件中心/serviceprovider-center/target/serviceprovider-center.jar
Remote directory为你要将文件复制到该服务器的文件夹
Exec command为该服务器要执行的shell命令,其实跟本地服务器大同小异。
scp root@192.168.1.239:/var/lib/jenkins/workspace/车福管家配件中心/serviceprovider-center/target/serviceprovider-center.jar /home/soft/service/
docker stop service
docker rm service
docker rmi repo/service
cd /home/soft/service
docker build -t repo/service ./
docker run -d --name service --net=host repo/service
最后进行构建,结果如图所示。
另外需要注意的是多次构建会在/var/lib/jenkins/jobs产生大量的记录,会大量占用磁盘空间,需要定期清理
cd /var/lib/jenkins/jobs
rm -rf *
如果在磁盘产生堆积时可以用
du -h --max-depth=1 |sort 命令来进行逐层查找。