實驗環境
- 10.0.0.12 Jenkins服務器
- 10.0.0.13 遠程服務器
- 一個遠程的公開的git倉庫(php代碼在這個倉庫里)
一.檢查插件是否安裝並安裝插件
在通過Jenkins發布php代碼之前,我們首先需要在Jenkins服務的web頁面上檢查一下 “Git plugin” 和 “Publish Over SSH” 兩個插件是否已安裝:
“系統管理” → “管理插件” → “已安裝”,然后搜索Git plugin看看是否已安裝,一般這個插件都是默認安裝的:
然后到 “可選插件” 里安裝 Publish Over SSH 插件:
二.重啟Jenkins服務:
[root@7mini-node2 ~]# systemctl restart jenkins
確保兩個插件都安裝好。
三.配置密鑰認證
生成密鑰對后,首先把公鑰拷貝到遠程的機器上去,也就是把公鑰的內容粘貼到 .ssh/authorized_keys
文件里,和我們之前配置遠程登錄的密鑰驗證是一樣的。(一定要保存在authorized_keys文件中)
3.1 server上創建密鑰對
[root@7mini-node2 ~]# ssh-keygen
3.2 查看密鑰粘貼在jenkins配置中,點擊“系統管理” → “系統設置”,下拉頁面,大概在網頁的最下面可以找到 “Publish Over SSH”
[root@7mini-node2 ~]# cat .ssh/id_rsa
注:Jenkins SSH Key 這一欄默認會使用Jenkins管理員admin賬戶的密碼,可以不填則設置為空密碼。
四.構建項目
4.1 以上我們配置完了插件以及遠程機器,現在就可以開始新建任務了:
4.2 配置項目名稱與描述:
4.3 配置遠程倉庫的地址:
4.4 構建觸發器,以及構建環境都不需要配置,因為我們發布的是php代碼:
4.5 “構建” ,最核心的一步,選擇 “Send files or execute commands over SSH” :
簡單說明:
- SSH Server,Name 選擇對應的服務器,
- Transfers, Source files填寫
**/**
,表示全部文件 - Remove prefix可以指定截掉的前綴目錄,這里留空即可,
- Remote directory指定遠程服務器上代碼存放路徑,比如/data/wwwroot/www.aaa.com
- Exec command為文件傳輸完成后要執行的命令,比如可以是更改文件權限的命令,設置完成后點擊 “Add Transfer Set”,如果還有另外的機器,可以點擊 “Add Server”重復以上操作
完成以上操作后,就可以使用這個剛剛創建的任務去工作了,點擊左面的 “立即構建” ,就能把git上的代碼發布到指定的服務器上:
4.6構建輸出完成
到遠程機器上,看看是否已經存在這個目錄: