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用户,然后执行后面的命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值