centos下jenkins的安装
centos下jenkins的安装
实验环境
CentOS版本:CentOS Linux release 7.5.1804 (Core)
Jenkins版本:2.249.1
Java版本:1.8.0_221
从官网下载Jenkins
进入Jenkins中文网,https://www.jenkins.io/zh/,如果你进入的是英文版的网站,可以通过左上角来选择语言,如下图:
在jenkins首页,我们点击下载按钮,进入下载页面,如下图:
下载页面中,我们选择“稳定版(LTS)”版本的java通用war包进行下载,目前最新的稳定版下载地址如下:
http://mirrors.jenkins.io/war-stable/2.249.1/jenkins.war
编写启动停止脚本
下载好war包,配置好java环境变量,可以直接使用java -jar jenkins.war的方式直接启动jenkins。
默认的数据目录位于当前用户家目录下的.jenkins目录,web端口是8080。
为了方便启动和停止,这里我们编写一个启动脚本,脚本中可以自定义数据目录和web端口,如下:
cat jenkins.sh
#!/bin/bash
export LANG=zh_CN.UTF-8
:<<!
shell多行注释,开始
脚本说明信息
shell脚本模板,注意换行符必须是UNIX换行符\n
linux 中 jenkins 启动、停止脚本
参考:https://blog.csdn.net/u011974797/article/details/78889580
脚本放置在 jenkins.war 包所在的目录即可
默认的jenkins数据目录为war包所在目录下的 jenkins_data 目录,可以通过修改 JENKINS_DATA 变量值来修改jenkins数据目录
默认的jenkins端口为8080,可以通过修改 JENKINS_PORT 变量值来修改jenkins的web端口
shell多行注释,结束
!
# 引入root用户和当前用户的环境变量,开始
. /etc/profile
. ~/.bash_profile
# 引入root用户和当前用户的环境变量,结束
SHELL_FOLDER=$(dirname $(readlink -f "$0"))
echo $SHELL_FOLDER # 当前脚本所在目录的绝对路径
ip=`ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d '/'` # 获取当前节点的ip地址
echo $ip
date "+%Y-%m-%d %H:%M:%S"
# 编写脚本内容
JENKINS_ROOT=$SHELL_FOLDER # jenkins的安装目录,即 jenkins.war 包所在的目录,例如:/data/msf/jenkins
JENKINS_DATA=jenkins_data # 设置jenkins数据目录名称
JENKINS_PORT=8080 # 设置jenkins的启动端口
JENKINSFILENAME=jenkins.war # jenkins war 包的名称
JENKINSRUNLOG=jenkins.run.log # jenkins 运行日志
export JENKINS_HOME=$JENKINS_ROOT/$JENKINS_DATA # 设置jenkins的工作目录
#查看进程状态
status(){
# 注意,调用时加上双引号可以把grep结果中的换行符保留下来,例如:echo "$(status)"
ps -ef | grep $JENKINS_ROOT/$JENKINSFILENAME | grep -v grep
}
case "$1" in
start)
echo "Starting $JENKINS_ROOT/$JENKINSFILENAME "
if [[ $(status) != "" ]]; then
echo "服务运行正常,无需启动"
else
nohup java -jar $JENKINS_ROOT/$JENKINSFILENAME --httpPort=$JENKINS_PORT > $JENKINS_ROOT/$JENKINSRUNLOG 2>&1 &
fi
;;
stop)
echo "Stoping $JENKINS_ROOT/$JENKINSFILENAME "
if [[ $(status) != "" ]]; then
echo "$(status)" | awk '{print $2}' | while read pid
do
kill $pid
echo " $pid kill 首先使用 kill 来停止进程"
done
echo "等待5秒,如果进程还在,那么使用 kill -9 来杀死进程"
sleep 5
if [[ $(status) != "" ]]; then
echo "$(status)" | awk '{print $2}' | while read pid
do
kill -9 $pid
echo " $pid kill 如果没能正常终止,使用 kill -9 来杀死进程"
done
fi
else
echo "服务已经停止,无需停止"
fi
;;
restart)
sh $0 stop
sh $0 start
;;
status)
echo "getstatus $JENKINS_ROOT/$JENKINSFILENAME "
result=$(status)
echo "$result"
if [[ $result != "" ]]; then
echo "服务运行正常"
else
echo "服务已经停止"
fi
;;
*)
printf 'Usage: %s {start|stop|restart|status}\n'
exit 1
;;
esac
date "+%Y-%m-%d %H:%M:%S"
脚本编写完成后启动停止就比较方便了,执行脚本时,脚本路径使用绝对和相对路径都可以,使用方式如下:
启动
sh jenkins.sh start
停止
sh jenkins.sh stop
重启
sh jenkins.sh restart
查看状态
sh jenkins.sh status
设置开机启动
设置开机启动后,重启机器时就不用手动启动jenkins了。
这里我们通过 /etc/rc.d/rc.local 的方式设置开机启动,需要使用root用户身份进行设置。
在 centos7 中 /etc/rc.d/rc.local 的权限被降低了,需要给它增加下可执行权限,如下:
chmod +x /etc/rc.d/rc.local
然后在 /etc/rc.d/rc.local 中追加jenkins的启动命令,如下:
su - user -c "sh /data/msf/jenkins/jenkins.sh start"
其中,user代表是启动jenkins时的用户名,后面的启动命令中脚本地址需要使用绝对路径。
su - user -c 代表切换到user用户,然后执行后面的命令。
上一篇: 作业管理系统总结
下一篇: 腾讯云centos服务器初体验
推荐阅读
-
win10的jenkins+centos7的docker自动化部署前端项目
-
centos下jenkins的安装
-
简单几步在Linux的CentOS7环境安装并配置Redis
-
5_3_x_nts_comp版本的ZendDebugger在PHP5.3(Thread Safety)下安装不成功的原因(转)
-
Python3.7源码在windows(VS2015)下的编译和安装
-
Ubuntu下Cmake的GUI界面安装
-
基于CentOS6定制自己的ISO安装光盘
-
CentOS5.5下PHP5.2.10未安装MySQL模块的解决方式
-
MongoDB Linux下的安装和启动
-
CentOS下安装MySQL及Windows下使用Navicat for MySQL连接