Linux作業系統下部署Jenkins環境,資料遷移(備機部署)以及主從節點的配置
本文所闡述的,均是在Linux作業系統下部署Jenkins環境,採用的解決方案是,使用Tomcat、Jenkins.war包和maven,以及利用Nginx做Tomcat的反向代理來實現Jenkins的CI/CD。
目錄
附環境部署所需要的包:
Jenkins.war包 連結: https://pan.baidu.com/s/1K0m4at9Iti-WHkUC9ZguYQ 密碼: nbmp Tomcat zip包 連結: https://pan.baidu.com/s/1a4AQPc9cKNhipgvPiL5FLA 密碼: kqv2 Maven tar包 連結: https://pan.baidu.com/s/1hFytUGAPEiZ_p5CotnhZDg 密碼: iep5 Nginx tar包 連結: https://pan.baidu.com/s/1ISToevWLFYBC_gpb-2cGEA 密碼: 3yqm
Jenkins環境部署
編者將/data作為Jenkins的部署目錄,目錄可因個人使用習慣進行更改。另將所有的需要使用到的包放置在部署目錄下。
1、部署Tomcat環境
(1) 解壓Tomcat安裝包
[-> ~#] cd /data
[-> ~# data] unzip apache-tomcat-8.5.32.zip
(2) 啟動Tomcat服務
[-> ~# data] cd unzip apache-tomcat-8.5.32 [-> ~# apache-tomcat-8.5.32] chmod +x ./bin/*.sh # 針對指令碼無許可權的使用者,如有忽略 [-> ~# apache-tomcat-8.5.32] ./bin/startup.sh # 啟動Tomcat [-> ~# ] ss -antulp | grep java # 如果8080,8009,8005埠都啟動了,說明Tomcat環境部署成功
2、部署Maven
(1) 解壓maven tar包
[-> ~#] cd /data
[-> ~#] tar -xf apache-maven-3.5.4-bin.tar.gz
(2) 部署Maven環境變數
[-> ~#] vim /etc/profile # 將下列的文字新增至檔案末: export MAVEN_HOME=/data/apache-maven-3.5.4 [-> ~#] source /etc/profile # 使得配置檔案立即生效 [-> ~#] mvn -v # 如果出現maven版本號,說明maven環境部署成功
3、部署Jenkins
為確保後續的操作,建議將Tomcat停止,
[-> ~#] cd /data/apache-tomcat-8.5.32
[-> ~# apache-tomcat-8.5.32] ./bin/shutdown.sh # 停止Tomcat
[-> ~# data] cp jenkins.war apache-tomcat-8.5.32/webapps # 將jenkins.war包放到tomcat的webapps目錄下
[-> ~# data] mv apache-tomcat-8.5.32/webapps/jenkins.war apawche-tomcat-8.5.32/webapps/ROOT.war # 將jenkins.war更名為ROOT.war
[-> ~# apache-tomcat-8.5.32] ./bin/startup.sh # 啟動Tomcat,如果8005埠沒有啟動則無法訪問
4、部署Nginx環境
在這裡說明下為什麼要部署Nginx環境,因為一般在生產環境中,8080埠是不對外開放。既然如此,那我們只能通過Nginx的反向代理方式,來實現8080埠的訪問。
[-> ~#] cd /data
[-> ~# data] tar -xvf nginx-1.12.2.tar
[-> ~# data] cd nginx-1.12.2
[-> ~# nginx-1.12.2] ./configure --prefix=/usr/local/nginx --with-http_ssl_modules --with-stream && make && make install # 原始碼編譯安裝Nginx
[-> ~# nginx-1.12.2] ln -s /usr/local/nginx/bin/nginx /sbin/nginx # 建立nginx連結
[-> ~# nginx-1.12.2] vim /usr/local/nginx/conf/nginx.conf
# 增加以下內容 :
http{
... ...
upstream jenkins{ # 反向代理配置
server 127.0.0.1:8080;
}
}
server{
... ...
location / {
proxy_pass http://jenkins; # 反向代理的呼叫
}
}
[-> ~# nginx-1.12.2] nginx -t # 檢查nginx配置檔案是否為ok
[-> ~# nginx-1.12.2] nginx # 如果之前有啟動過nginx,那麼需要使用"nginx -s reload"
使用"ss -antulp" 檢視 80,8080,8009,8005埠是否開啟,如果都已經開啟,則可以繼續往下操作,
訪問 "http://host_ip",即可跳轉到jenkins頁面。
根據提示,在命令列獲取登陸jenkins的密碼,密碼可在進入jenkins後進行修改
選擇安裝外掛方式:
不用建立使用者,直接使用admin使用者進行登入即可
部署完成
資料遷移(備機部署)
準備一臺新的主機,將Jenkins主伺服器上 /data目錄,以及jenkins的主目錄所有資料同步備份到備機上
[-> ~#] rsync -az --delete /data [email protected]_ip:/data # 需要做主機互信,才能免密,如果非22埠,需要使用'ssh -p 埠號'進行同步
[-> ~#] rsync -az --delete /root/.jenkins [email protected]_ip:/root/.jenkins
除此之外,在做Jenkins備機的時候,先將jenkins退出(http://host_ip/exit),然後將Tomcat停止。
做完備份之後,我們還要設定Jenkins的環境變數
[-> ~#] vim /etc/profile
# 文末新增如下內容:
export JENKINS_HOME=/root/.jenkins
[-> ~#] source /etc/profile
[-> ~#] vim /data/apache-tomcat-8.5.32/bin/catalina.sh
# 在配置檔案的“# OS specific support. $var _must_ be set to either true or false.”的上面新增:
export JENKINS_HOME=/root/.jenkins
注意:如果沒有設定環境變數,有可能會造成Jenkins資料同步失敗、使用者同步失敗或者使用者許可權同步失敗等問題。
上述步驟完成後,啟動Tomcat,以及啟動Jenkins,如果無誤的話,備機伺服器上,是和主機上的一致。如圖
資料實時備份可以採用 "rsync+cron" 進行實現,附指令碼:
[-> ~# data] vim rsync.sh
#!/bin/bash
rsync -az --delete /data [email protected]_ip:/data
rsync -az --delete /root/.jenkins [email protected]_ip:/root/.jenkins
[-> ~# data] crontab -e -u root
0 0 * * * bash /data/rsync.sh
Jenkins主從節點配置
因網上有許多Jenkins主從節點配置的文章,就不在這裡詳細闡述了,編者擇選了一篇較為詳細的附上鍊接:https://blog.csdn.net/ruangong1203/article/details/78687450
本文旨在提供參考,如有錯誤,歡迎大家指正。幫助編者不斷的改進!