佔個位,持續補充。html
1、使用Jenkins進行自動化部署java
一直以來關於xx框架/中間件的技術博客有個奇怪的事情。這類文章特色大而全,重複率高,讀者閱讀完畢基本從安裝到放棄。git
做爲一個使用者,我只是爲了實現一個初步的功能慕名而來,踩得坑多了才但願尋求一些心得,結果搜索到的恰恰是些連做者本身都以爲雲裏霧裏的東西。web
這裏,從目的出發,只談我遇到的障礙與解決方式,構成一條完整的線。shell
【經過Jenkins實現不須要PC、不須要SSH的自動化部署】數據庫
一、首先yum安裝。瀏覽器
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key安全
這裏提一點,若是服務器鏈接國外站點的速度慢,考慮bash
(1)yum install jenkins --downloadonly,這樣你的rpm包會在/var/cache/yum/x86_64/7/jenkins/packages下,複製到那臺要安裝的服務器上,yum localinstall jenkins-2.150.1-1.1.noarch.rpm便可。服務器
(2)使用鏡像下載,在http://mirrors.jenkins-ci.org/status.html查詢。
二、參數配置
(1)Java位置
vi /etc/rc.d/init.d/jenkins
candidates="
************
************
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/bin/java
"
(2)Jenkins 端口號修改
a. web界面端口號
vi /etc/sysconfig/jenkins
JENKINS_PORT="8080" ---→ xxxx
除了:6666-6669端口是IRC協議使用的缺省端口,存在安全風險,容易被木馬等程序利用,應該是出於安全考慮,谷歌,火狐瀏覽器給屏蔽了。
b. Jenkins運行腳本的用戶
JENKINS_USER默認值爲Jenkins,注意你以前部署項目的腳本有沒有給這個用戶分配權限,爲方即可考慮改成root。
三、啓動和中止
service jenkins start
service jenkins stop
service jenkins restart
chkconfig jenkins on
若是啓動失敗,查看日誌/var/log/jenkins/jenkins.log
四、引導頁
引導頁能夠直接點右上角X跳過,這樣登陸時直接輸入admin/初始密碼(/var/lib/jenkins/secrets/initialAdminPassword)便可。
若是不想跳過,suggested的插件一個都不要裝,之後按需來,除非你確信本身網絡情況很好。
若是啓動後興奮亂改致使配置失敗很差挽回,yum remove jenkins,刪除/var/lib/jenkins,從新install,這樣纔會徹底重置。
五、安全設置
左上系統管理-系統設置-全局安全配置,啓用安全,Security Realm選Jenkins專有用戶數據庫,Authorization選登陸用戶能夠作任何事。
CSRF Protection中Prevent Cross Site Request Forgery exploits前面的√去掉。
若是修改失敗Jenkins會報錯(不安分的管家啊),在/var/lib/jenkins/config.xml中<useSecurity>true</useSecurity>改成false就能夠設置了。
六、新建一個任務(構建),支持帶token的url調用
(1)咱們的目的在於擺脫SSH登陸服務器,經過遠程url調用,這裏假設你已經有了一個部署腳本,完成了git拉取代碼並編譯打包(maven)的工做,不然須要下載Jenkins的git、maven插件並配置。
在Build這裏選擇執行shell,輸入以前的部署腳本,並在開頭添加
#!/bin/bash -ilex (容許使用系統環境變量)參考https://blog.csdn.net/zzusimon/article/details/57080337
#!/bin/sh -e (每條指令以後,均可以用$?去判斷它的返回值,零就是正確執行,非零就是執行有誤)
最後,在你以前的部署腳本中加入export BUILD_ID=dontkillme,或者在Jenkins的節點管理中添加,以避免Jenkins默認kill構建腳本中所啓動的子進程。
(2)Build Triggers
Trigger builds remotely (e.g., from scripts)這裏選中,填上一個token,這樣就能夠經過
JENKINS_URL/job/構建名/build?token=
TOKEN_NAME調用了(get方法便可)。
注意,若是這裏沒有啓用安全設置,全部人均可以經過/build隨時構建你的項目。
七、查看構建結果和歷史
-------------------
待補充。