生產環境部署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
相關文章
相關標籤/搜索