jenkins部署
1.jenkins
安装
1) 执行以下脚本
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum -y install jenkins
2)配置jenkins
vim /etc/sysconfig/jenkins
修改jenkins的端口号和运行用户
JENKINS_PORT="8888" #监听端口
JENKINS_USER="root" #运行用户
更改jenkins下的用户
# 就是把/var/lib/jenkins下的jenkins所有文件的用户组改成root用户组下面的root用户
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
3)放行端口(如果防火墙开启了)
firewall-cmd --add-port=8888/tcp
firewall-cmd --add-port=8888/tcp --per
4)安装jdk
将安装包放到/usr/local
,安装到的位置为/usr/local
- 源码包解压
tar -zxvf jdk-8u321-linux-x64.tar.gz
- 配置
jdk
环境变量vim /etc/profile
在文件最后加入:
export JAVA_HOME=/usr/local/jdk1.8.0_321 #jdk安装目录 export JRE_HOME={JAVA_HOME}/jre export CLASSPATH=.:{JAVA_HOME}/lib:{JRE_HOME}/lib:CLASSPATH export JAVA_PATH={JAVA_HOME}/bin:{JRE_HOME}/bin export PATH=PATH:{JAVA_PATH}
更新配置文件
source /etc/profile
测试
jdk
是否安装成功java -version # 可以看到版本号
5)配置maven
同样将压缩文件传到/usr/local
中
- 源码解压
tar -zxvf apache-maven-3.6.1-bin.tar.gz
- 配置环境变量
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.6.1 export PATH=MAVEN_HOME/bin:PATH
- 刷新配置
source /etc/profile
- 查看是否配置成功
mvn -v
6)安装git
yum -y install git
7)创建java的软连接
由于jenkins会依赖jdk的开发环境,因此需要创建一个软连接
ln -s /usr/local/jdk1.8.0_321/bin/java /usr/bin/java #根据具体java home目录创建软链接
systemctl restart jenkins
systemctl enable jenkins
8)访问主页(服务器地址:8090)
9)获取初始密码
vim /var/lib/jenkins/secrets/initialAdminPassword
10)创建用户
2.jenkins
全局配置
进入全局配置界面(Global Tool Configuration)
1)jdk配置
在前面已经叙述了jdk环境的安装,就是jdk的安装位置/usr/local/jdk1.8.0_321
2)maven配置
在前面已经叙述了maven环境的安装,就是maven的安装位置下面的conf下的settings.xml/usr/local/apache-maven-3.6.1/conf/settings.xml
滑到最底部,有个maven的安装,按照如下配置:
3)git 配置,默认即可
4)jenkins 插件安装
进入如下界面:
Maven Integration plugin : 用于创建maven项目,否则你项目的时候没有maven这个选项
Git Parameter Plug-In: 用于设置git参数,这样就可以选择git分支进行构建
Publish Over SSH:非常重要的一个插件,用于把打好的包发到远端服务器,同时需要配置和远端服务器的免密登录
3.测试部署springboot项目
1)新建任务
2)General 部分
3)源码管理
- 添加项目地址,便于后续拉取代码
- 添加用户名和密码
4)构建触发器操作
将build whenever a SNAPSHOT dependency is built
选项取消
5)构建环境
6)Pre Steps 操作无
7)Build
8)Post Steps
其中stop.sh脚本内容为
# 将应用停止
#stop.sh
#!/bin/bash
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep springboot-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print 2}'`
if [ -n "pid" ]
then
kill -9 $pid
fi
replace.sh的脚本为
#replace.sh 用于将上次构建的结果备份,然后将新的构建结果移动到合适的位置
#!/bin/bash
# 先判断文件是否存在,如果存在,则备份
file="/root/jenkins/jar_dir/springboot-demo-0.0.1-SNAPSHOT.jar"
if [ -f "$file" ]
then
mv /root/jenkins/jar_dir/springboot-demo-0.0.1-SNAPSHOT.jar ./backup_jar/`date +%Y%m%d%H%M%S`.jar
fi
mv /var/lib/jenkins/workspace/springboot-demo/target/springboot-demo-0.0.1-SNAPSHOT.jar /root/jenkins/jar_dir/springboot-demo-0.0.1-SNAPSHOT.jar
执行java程序的脚本为BUILD_ID=dontKillMe nohup java -jar /root/jenkins/jar_dir/springboot-demo-0.0.1-SNAPSHOT.jar &
总结下思路:首先进入停止脚本,如果没有指定的java程序启动,那么就什么都不用干,否则杀死进程;进入备份脚本,其脚本的含义是先判断执行的脚本是否存在,如果存在,则将当前的jar包备份下,然后将jenkins打包生成的脚本放到运行目录里面 。
9)构建设置操作
无
10)构建后操作
无
保存即可
4.构建项目
查看控制台输出
构建历史如下:
注意jenkins home
目录在/var/lib/jenkins
注意,如果在自定义安装插件时,出现connection time out
,需要在插件管理里面,有个高级选项,在最下面,有个更新站点的选项,将地址换成http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
参考文章
文章评论