jenkins服務器地址:192.168.1.203
項目部署機器地址:192.168.1.201,192.168.1.200
代碼托管github
雖然比較low,但是入門是可以的!
Jenkins安裝
參考:https://jenkins.io/zh/doc/book/installing/
下載地址:https://jenkins.io/download/
本示例采用rpm包安裝。
Jenkins需要JDK1.8支持。
Jenkins默認配置文件:/etc/sysconfig/jenkins
Jenkins war包位置:/usr/lib/jenkins/jenkins.war
# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
安裝過程中該Jenkins實例似乎已離線

解決辦法:
默認是通過https://updates.jenkins.io/update-center.json 進行更新的。此處,將https改為http,重啟Jenkins,重新打開頁面,一切都正常了。
# find / -name "hudson.model.UpdateCenter.xml"
/xx/jenkins/hudson.model.UpdateCenter.xml
# vim /beike/jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>http://updates.jenkins.io/update-center.json</url>
</site>
</sites>
# /etc/init.d/jenkins restart
No such plugin: cloudbees-folder

因為下載的Jenkins.war里沒有cloudbees-folder插件
需要在網上下載:http://ftp.icm.edu.pl/packages/jenkins/plugins/cloudbees-folder/
下載cloudbees-folder.hpi放在/xxx/webapps/jenkins/WEB-INF/detached-plugins即可
# find / -name "detached-plugins"
/var/cache/jenkins/war/WEB-INF/detached-plugins
# cd /var/cache/jenkins/war/WEB-INF/detached-plugins
# wget http://ftp.icm.edu.pl/packages/jenkins/plugins/cloudbees-folder/latest/cloudbees-folder.hpi
# /etc/init.d/jenkins restart
之后可正常安裝jenkins社區版推薦插件!

Jenkins手動插件安裝
系統管理------>插件管理
如果遇到如下報錯:

解決辦法:
Advanced

將https修改為http即可
需安裝插件:
GIT client plugin
GIT plugin
Git server plugin
GitHub API Plugin
GitHub plugin
SSH Credentials Plugin
SSH plugin
Publish Over SSH
Maven Integration
NodeJS
設置環境變量



不要勾選自動安裝!
Jenkins配置機器信任
配置Jenkins服務器與待發布服務器之間的信任
# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.200
# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.201
Jenkins中添加已經信任的機器



使用密碼驗證!
配置Jenkins與git信任
配置git認證
Jenkins服務器上生成秘鑰:
# ssh-keygen
將.ssh/id_rsa.pub 復制到git的ssh key中,便於拉取代碼

測試Jenkins服務器可以可以clone代碼!
配置Jenkins認證



此處輸入.ssh/id_rsa

創建項目
創建maven項目

項目描述

SSHF方式,若無認證,會報錯

正常情況:

依賴pom文件的編譯命令:

編譯成功后動作:

連接到部署服務器上,將原來的服務暫時暫停,備份上一次部署的壓縮包,選擇添加遠程shell腳本執行。

把打包好的代碼發送到服務器上,並且啟動服務,選擇通過ssh發送文件並執行命令到遠程服務器。