生产环境部署jenkins

前提:java

  生产环境不能访问外网web

 

安装:浏览器

1.下载jenkins的war包,将包拷贝到生产服务器/app/jenkins目录下bash

http://mirrors.jenkins-ci.org/war/服务器

 

2.使用JDK的java命令启动jenkinsapp

安装JDK,或者本身使用特定的JDK包启动jenkinsless

#我这里是拷贝的其余生产服务器上的JDK过来使用 /app/zulu8.33.0.1/bin/java -jar /app/jenkins/jenkins.war --httpPort=8060

 

3.浏览器是访问8060端口,复制启动时显示的密钥,进行安装this

由于生产环境没有链接外网,不能下载一些插件,就直接跳过插件安装url

而后登录成功后,咱们进行下一步操做spa

 

4.将jenkins服务中止(ctrl+c),并将jenkins默认的家目录.jenkins的内容拷贝到咱们指定的目录

这样作的好处,我也不是太明白,默认的家目录,通常是启动程序后建立的,多是以为让本身的目录把握更爽?

# 建立jenkins的家目录,不过以后的启动脚本,要自行设置其目录为jenkins家目录 mkdir /app/jenkins/data # 将默认家目录的全部文件和目录移动到咱们建立的家目录下 mv /app/.jenkins/* /app/jenkins/data/

# 将家目录下的war包,咱们单独拿到jenkins目录下,大概是想让以后启动时指定webroot更方便8
mv /app/jenkins/data/war /app/jenkins/

# 建立日志目录,用于以后启动脚本将信息写入到其中
mkdir /app/jenkins/logs

 

5.写启动脚本,vi /app/jenkins/jenkins_start.sh

#!/bin/bash #------------------------------- # jenkins start scripts # Author:caixukun # Last Modified:2019-7-4 15:40 #------------------------------ export JENKINS_HOME=/app/jenkins/data pid=`ps -ef | grep jenkins.war | grep -v grep | awk '{print $2}'` if [ -z ${pid} ];then
    echo "jenkins starting.."
    /app/zulu8.33.0.1/bin/java -jar /app/jenkins/jenkins.war --webroot=/app/jenkins/war --httpPort=8060 > /app/jenkins/logs/jenkins.log 2>&1 &
    sleep 3 pid_recheck=`ps -ef | grep jenkins.war | grep -v grep | awk '{print $2}'` if [ -z ${pid_recheck} ];then
      echo "started jenkins fail! log:/app/jenkins/logs/jenkins.log"
    else
      echo "started jenkins success! log:/app/jenkins/logs/jenkins.log"
    fi

else
    echo "restarting jenkins..."
    kill -9 $pid sleep 3
    /app/zulu8.33.0.1/bin/java -jar /app/jenkins/jenkins.war --webroot=/app/jenkins/war --httpPort=8060 > /app/jenkins/logs/jenkins.log 2>&1 &
    
    sleep 3 pid_recheck=`ps -ef | grep jenkins.war | grep -v grep | awk '{print $2}'` if [ -z ${pid_recheck} ];then
      echo "restarted jenkins fail! log:/app/jenkins/logs/jenkins.log"    
    else
      echo "restarted jenkins success! log:/app/jenkins/logs/jenkins.log"
    fi
fi

另外一种启动脚本,可自我选择。

这个是另外一个服务器,因此启动jenkins的方式有所不一样。若是要使用,自行修改启动方式为上面脚本中的启动方式和一些目录路径便可

#!/bin/bash pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l` if [ "$1" = "start" ];then
    if [ $pid -gt 0 ];then
        echo 'jenkins is running...'
    else java -Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP= -DJENKINS_HOME=/appuser/jenkins -jar /appuser/jenkins/jenkins.war  --logfile=/appuser/jenkins/logs/jenkins.log --webroot=/appuser/jenkins/war  --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 >/dev/null 2>&1 
    fi
elif [ "$1" = "stop" ];then exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9
        echo 'jenkins is stop..'
else
        echo "Please input like this:"./start.sh start" or "./start.sh stop""
fi

 

7.拷贝插件

由于不能链接外网,就只能将其余服务器jenkins现成的plugins文件拷贝过来

ps:记得压缩包再拷贝,虽然文件不大,可是不少,不压缩的话拷贝就会很慢

# 删除原来有的插件目录 rm -rf /app/jenkins/plugins # 拷贝操做就自行解决


# 还有就是若是以为删除很不保险,能够先将其备份后再删除
cd /app/jenkins/data && tar -zvcf plugins.bak.tar.gz plugins
rm -rf plugins

 

8.启动脚本

cd /app/jenkins && sh jenkins_start.sh# 最后/app/jenkins目录下的文件和目录展现ls /app/jenkinsdata  jenkins_start.sh  jenkins.war  logs  war
相关文章
相关标签/搜索