目錄
部署環境
Name | Version | capacity |
---|---|---|
CentOS 7 | 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | |
java | java-1.8.0-openjdk.x86_64 1:1.8.0.181-3.b13.el7_5 | |
jenkins | jenkins.noarch 0:2.141-1.1 |
PS:以#開頭的命令是宿主機的命令。
引言
產品設計成型 -> 開發人員開發代碼 -> 測試人員測試功能 -> 運維人員發佈上線
持續集成 (Continuous integration,簡稱CI)
持續交付(Continuous delivery)
持續部署(continuous deployment)
參考 http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html
Jenkins介紹
Jenkins是一個開源的、可擴展的持續集成、交付、部署(軟件/代碼的編譯、打包、部署)基於web界面的平臺。
Jenkins是一個工具集,提供了各種各樣的插件
比如獲取git上最新的代碼
比如可以幫你編譯源代碼
比如可以調用自定義的shell腳本遠程執行命令
Jenkins安裝
最低配置: 不少於256M內存,不低於1G磁盤,jdk版本>=8
需要先安裝jdk1.8,因爲Jendins是java語言開發的,所以需要安裝jdk
# yum install -y java-1.8.0-openjdk
下載Jenkins的repo源
# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
安裝Jenkins前先要安裝鑰匙,是因爲repo源需要檢查鑰匙,gpgcheck=1
# cat /etc/yum.repos.d/jenkins.repo
[jenkins]
name=Jenkins
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1
# rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
正式安裝Jenkins
# yum install -y jenkins
啓動Jenkins
# systemctl start jenkins
命令行查詢Jenkins的admin密碼,就是中間長串字符,或者在最下面的路徑裏看,後面用到
# less /var/log/jenkins/jenkins.log
...
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
e2c2f2b6d5dc48a8bbaf2451b5a6397b
This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
*************************************************************
訪問http://ip:8080/進行web安裝Jenkins,注意8080端口不要被佔用
# cat /var/lib/jenkins/secrets/initialAdminPassword
e2c2f2b6d5dc48a8bbaf2451b5a6397b
輸入密碼後電機繼續,需要初始化一段時間,進入自定義Jenkins,初學者推薦“安裝推薦的插件”
自動安裝推薦的插件,需要花費一段時間
創建用戶
保存
進入Jenkins界面
Jenkins的相關目錄
# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins < 配置文件
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins < 安裝目錄
/var/log/jenkins < 日誌目錄
Jenkins發佈php代碼
該實驗需要檢查是否有“Git plugin”和“Publish Over SSH”兩個插件,如果沒有,則需點擊“系統管理”>“管理插件”>“可選插件”,找到它並安裝
“Git plugin”有了
“Publish Over SSH”還沒有,安裝
安裝好兩個插件,重啓Jenkins服務
# systemctl restart jenkins
接着設置“Publish Over SSH”,在Jenkins服務的機器上生成ssh密鑰對,可設置密碼,也可不設置
# ssh-keygen -f /root/.ssh/jenkins
如果曾經生成過ssh密鑰的,直接把本機的私鑰黏貼到key裏面去
01# cat /root/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAyDqlJewBsYoAqHa6b/yjdWEZHSh6O2vxv/j5FsOt4ADQgx0p
...
IPwG+oGry7e2z+g8LBD4iI5D03euY3j9dac27UCu1h8/V4BLrZjSui4=
-----END RSA PRIVATE KEY-----
把本機公鑰放到遠程機器的.ssh/authorized_keys裏面
01# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIOqUl7AGxigCodrpv/KN1YRkdKHo7a/G/+PkWw63gANCDHSkk9IssGqzX9XOChn9hOOXQv/RWZBItlspJCBBoQmTPhFIcJXWAcMvFCxZAawWdx1CT1fgxpn7eaTZ4HZDeGPNb5zk5Juehc7EiHm7LUjeWNqavxyETJzPAq8GuKQqJ1JTKCf0oYALJr8X6PVe58SHGPJamq1kjvlDGXrN3M3kD1DE1EWD7l33ssdG80tTo+LPd0nGROaauTEhCcH5H9jPyZ9fg/rOZBmczrnG7iBceZsXB93Uzqh+rbdndMYGohUNL37oi4mBqvL8cS2ZQrm3E8Thydv4LfD5C7COn root@zyshanlinux-001
# vi .ssh/authorized_keys
“Passphrase”填寫設置的密碼, “Path to key”留空,“key”粘貼/root/.ssh/jenkins文件內容;點擊左下角“增加”,SSH Server,name自定義,Hostname填寫線上web服務器的ip,Username填寫root,Remote Directory填寫/ 如果是多臺web server,繼續點擊“增加”,重複以上操作; 可以點擊“Test Configuration”測試下本地和遠程是否連接,最後點左下角的“應用和保存”