前提: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