26.1 jenkins介紹
26.2 jenkins安裝
26.3 瞭解jenkins
26.4/26.5 發佈php代碼
26.6 jenkins郵件設置
26.7 插件email-ext
26.8 破解jenkins管理員密碼
擴展:
1 請同窗們自行建立一個私有git倉庫,把discuz代碼push進去,並整合到你的jenkins任務裏
2 動手更改若干php代碼文件,而後發佈到線上
3 思考一下,如何回滾?php
產品設計成型 -> 開發人員開發代碼 -> 測試人員測試功能 -> 運維人員發佈上線
持續集成 (Continuous integration,簡稱CI)
持續交付(Continuous delivery)
持續部署(continuous deployment)
以上參考 http://www.ruanyifeng.com/blog/2015/09/continuous-integration.htmlhtml
1、 jenkins介紹java
官網 https://jenkins.io Jenkins是一個開源的、可擴展的持續集成、交付、部署(軟件/代碼的編譯、打包、部署)基於web界面的平臺。 Jenkins是一個工具集,提供了各類各樣的插件 好比獲取git上最新的代碼 好比能夠幫你編譯源代碼 好比能夠調用自定義的shell腳本遠程執行命令 官方文檔 https://jenkins.io/doc/
2、Jenkins安裝node
最低配置: 很多於256M內存,不低於1G磁盤,jdk版本>=8linux
安裝jdk1.8,此處安裝openjdkgit
yum install -y java-1.8.0-openjdk
安裝jenkins的yum源web
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo cat /etc/yum.repos.d/jenkins.repo
安裝jenkins的keyshell
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
安裝jenkinsvim
yum install -y jenkins systemctl start jenkins ps aux |grep jenkins less /var/log/jenkins/jenkins.log //安裝時產生的日誌,查詢admin密碼,作初始化安裝使用 還能夠到這個目錄查看密碼: /var/lib/jenkins/secrets/initialAdminPassword
瀏覽器訪問 http://192.168.216.3:8080/ 進行安裝,把剛剛的密碼粘貼進去瀏覽器
選擇推薦的插件安裝
安裝完成建立管理員帳號
3、瞭解jenkins
Jenkins相關目錄
rpm -ql jenkins
1.安裝目錄,即程序的主目錄,備份時拷貝走改目錄便可: /var/lib/jenkins jobs即頁面上建立的任務,生成任務目錄 nodes多節點時用到 plugins 插件所在目錄 secrets 密碼祕鑰相關目錄 2.配置文件 /etc/sysconfig/jenkins 3.日誌目錄 /var/log/jenkins
4、Jenkins發佈php代碼
"系統管理(Manage Jenkins)"->"管理插件(Manage Plugins)"->"已安裝"
檢查是否有"Git plugin"和"Publish Over SSH"兩個插件,若是沒有,則需點擊"可選插件",找到它並安裝
安裝完成直接在服務器中重啓服務: systemctl restart jenkins
事先在一臺linux服務器上生成一對密鑰
cd /root/.ssh/
若是生成過,則不須要一下操做
ssh-keygen -f /root/.ssh/jenkins //生成新的祕鑰對,文件名是jenkins,也能夠用現有的,能夠設置密碼,也可不設置
安裝好兩個插件後,點擊"系統管理" -> "系統設置(Configure System)" 下拉,找到"Publish Over SSH" "Passphrase"填寫設置的密碼或爲空, "Path to key"留空,"key"粘貼/root/.ssh/jenkins文件內容或者id_rsa的內容,即私鑰。 左下角,SSH Server定義發佈到哪臺機器上,點擊"增長",name自定義,Hostname填寫線上web服務器的ip,Username填寫root,Remote Directory填寫/(根)。 若是是多臺web server,繼續點擊"增長",重複以上操做 點左下角的"保存"
在002機器上 vim authorized_keys,把001機器上的公鑰複製過去,也要把公鑰放到本機的authorized_keys 中去。
新建任務,任務名稱自定義,好比test,選擇"構建一個自由風格的軟件項目"點擊下方的"肯定"
描述,自定義
"源碼管理"選擇 "Git"
到代碼管理倉庫獲取代碼: https://git.coding.net/aminglinux/aminglinux-book.git 此處使用課件中地址book.aminglinux.com
"Repository URL"填寫你項目的git地址,若是是公共項目能夠不設置下面的參數,直接填寫一個git地址便可,如果私有項目,須要填寫認證信息,好比能夠選擇 "SSH Username whith private key",而後設置Username以及private key
"Branches to build" 默認爲*/master,意思是發佈的分支爲master,保持默認
"構建觸發器"和"構建環境"留空
"構建",選擇 "Send files or execute commands over SSH"
SSH Server,Name 選擇對應的服務器,Transfers, Source files填寫**/**,表示所有文件
Remove prefix能夠指定截掉的前綴目錄,這裏留空便可,
Remote directory指定遠程服務器上代碼存放路徑,好比/tmp/jentest,
Exec command爲文件傳輸完成後要執行的命令,好比能夠是更改屬主屬組的命令(chown -R nobody:nobody /tmp/jentest),設置完成後點擊 "Add Transfer Set",若是還有另外的機器,能夠點擊 "Add Server"重複以上操做
最後點擊左下角的"保存"
完成以上操做後,就能夠使用這個剛剛建立的任務去工做了。
進入任務後,點擊左面的"當即構建(Build Now)",就能把git上的代碼發佈到指定的服務器上。
點擊左下角的#1/#2… ,而後再點擊 "Console Output"能夠查看輸出日誌
變動代碼後須要到對應任務從新點擊當即構建
5、Jenkins配置郵件 – 內置郵件
系統管理 -> 系統設置 -> Jenkins Location 先設置系統管理員郵件地址,這裏的郵件地址須要和後續要設置的發郵件地址一致。 往下拉,找到「郵件通知」那一欄 填寫SMTP服務器,點右側的高級,打勾「使用SMTP認證」,填寫用戶名密碼,這個密碼是qq郵箱上生成的受權碼,若是使用的是ssl協議,還須要在這裏打勾,smtp端口默認爲25 能夠打勾「經過發送測試郵件測試配置」,而後填寫接收郵件的地址,點右側的Test configuration進行測試
而後就是到已經構建過的job裏去配置接收郵件的地址了。在最下面「構建後操做」那一欄,找到E-mail Notification,Recipients填寫收郵件人
這個收件人只會在job構建失敗時才能收到郵件
能夠經過修改/tmp/jenkins_test/目錄權限來測試:
rm -rf jenkins_test/* chattr +i jenkins_test/ 更改完權限後去頁面當即構建便可
6、Jenkins配置郵件 – 插件email-ext
插件名字Email Extension Plugin,默認已經安裝
配置Extended E-mail Notification:
系統管理->系統設置->Extended E-mail Notification 填寫SMTP server,選擇高級,點擊Use SMTP Authentication,填寫用戶名、密碼此密碼爲受權碼、SMTP port等 選擇下方的Default Triggers,選擇Always老是發送,點擊應用,保存
還需到對應構建任務中去配置一下,下拉到「構建後操做」 點擊「增長構建後操做步驟」,選擇「Editable Email Notification」,其中Project Recipient List爲接收郵件的收件人,能夠在默認內容後面增長額外的收件人郵箱,用逗號分隔 點擊右下角的「Advanced settings」,定位到「Triggers」,而後點擊下方的「Add Trigger」,能夠增長髮郵件的條件。 參考文章http://www.cnblogs.com/zz0412/p/jenkins_jj_01.html
此處進行測試,須要把剛剛jenkins_test目錄的權限改回去,chattr -i jenkins_test/
發送成功,能夠收到郵件
7、Jenkins破解管理員密碼
cd /var/lib/jenkins/users/tobe_6892560001535223816 vim config.xml//定位到<passwordHash>這一行 刪除該行,改成 <passwordHash>#jbcrypt:$2a$10$pre7I4liZFdF6ZE05QntTOoKoKa5pCUumaFO/mMzMoH09bNBzyj6O</passwordHash> 重啓一下 systemctl restart jenkins 新密碼爲aminglinux.com