因為一些需求需要遷移之前使用的Jenkins,原來是按照官方檔案使用apt方式安裝的,這次搬遷后的機器由于默認不通外網(可以通過代理走外網),因此趁此機會,嘗試改用war包方式安裝
環境目標
系統Ubuntu 18.04,默認JDK設為8,以JDK 11啟動Jenkins主節點,以JDK 8啟動Jenkins子節點
注:實際子節點為另一臺機器,默認設為8是因為機器上其他應用需要運行在該環境下,以JDK 8啟動節點是因為自動化代碼不支持JDK 11
安裝步驟
安裝包準備
由于Jenkins最后一版支持Java 8的版本為2.356,因此從https://get.jenkins.io/war/2.356/下載該包并上傳至服務器/home/soul目錄下(soul是我創建的賬號名)
Java環境安裝
參考https://www.cnblogs.com/soultraitor/p/16654030.html,由于內網軟體源上有這兩個軟體,因此可以直接安裝,否則需要更換外網軟體源,并開啟代理安裝
注:JDK 10在執行java -version時也會被認為是JDK 11,但實際無法啟動Jenkins,需要安裝真正的JDK 11
Jenkins啟動
war包安裝啟動可參考官方檔案:https://www.jenkins.io/doc/book/installing/war-file/,安裝后默認安裝位置為/home/soul/.jenkins目錄
由于直接啟動后,關閉終端就會導致行程終止,因此需要使用nohup進行后臺啟動,同時為了方便啟動/終止Jenkins行程,這里使用腳本來實作
在jenkins.war同目錄下新建jenkins.sh檔案
#!/bin/bash
pid=$(ps -ef | grep jenkins.war | grep -v 'grep' | awk '{print $2}')
if [ "$1" = "start" ]; then
if [ -n "$pid" ]; then
echo 'jenkins is running...'
else
### java啟動服務 配置java安裝根路徑,和啟動war包存的根路徑
nohup /usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar /home/soul/jenkins.war >/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 stopped...'
else
echo "Please input like this:"./jenkins.sh start" or "./jenkins.sh stop""
fi
之后即可使用./jenkins.sh start和./jenkins.sh stop來啟停Jenkins
首次啟動進行初始化配置時,由于無法連接外網,因此會下載不了插件,此時可選擇配置代理,之后即可正常下載插件
注:代理地址不要帶http協議頭
設定開機啟動Jenkins
首先在/etc/systemd/system目錄下創建rc-local.service檔案
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
然后在/etc下創建rc.local檔案,并設定權限sudo chmod +x rc.local,檔案內容如下,中間注釋以下,exit 0以上的部分是啟動所需命令,意為使用soul賬號執行啟動命令(否則會用root賬號啟動,與原先soul啟動的不是同一個Jenkins)
#!/bin/bash
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/bin/su - soul -c "/home/soul/jenkins.sh start"
exit 0
最后執行sudo systemctl enable rc-local將服務設為開機啟動,重啟機器即可
Jenkins子節點配置
工具位置中,JDK指定路徑為/usr/lib/jvm/java-8-openjdk-amd64/jre
本文來自博客園,作者:SoulTraitor,轉載請注明原文鏈接:https://www.cnblogs.com/soultraitor/p/16655100.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/506138.html
標籤:其他
下一篇:acm可好玩了(6) 題解
