jenkins gitlab php,jenkins(8): 实战jenkins+gitlab持续集成发布php项目(代码不需要编译)...
一. jenkins 的配置
1.前提條件安裝了GitLab Plugin (源碼管理使用),GitLab Hook(gitlab webhook需要)
Manage Jenkins--->Manage Plugin ---->Available 去找到安裝。
2. ?創建 job ,選擇 自由風格的項目,點擊ok
3. 源碼管理
描述配置
源碼管理:要想連接 gitlab服務器,有兩種選擇,用http協議或者 ssh協議,這里我們使用ssh
首先填寫 ?gitlab 的url
配置到gilab 的認證: Credentials ,點擊ADD,復制 gitlab ssh密鑰對的私鑰到下圖.
認證成功如下圖:沒有任何報錯了
說明: ?如果 gitlab 配置了ssh 密鑰對,jenkins這邊也添加了 包含私鑰的憑證還是無法正常連接的話,參考:?https://www.cnblogs.com/yitianyouyitian/p/10027552.html
4. 構建觸發器設置
勾選如下, 下面的url是回調地址, gitlab webhook 那邊的設置會用上.
區分分支 觸發構建 設置如下: 只用master分分支變化后才會觸發構建.
5. 構建
選擇 ?Execute shell
shell腳本編寫,將 代碼同步到web服務器目錄,重啟服務。
注意: shell命令的執行 是在 jenkins 的job 的workspace 目錄進行的. 這里是項目 php1的工作目錄 ?/root/.jenkins/workspace/php1 。jenkins從gitlab pull的代碼就是放置在這里.
注意: 在這踩坑了,執行 rsync 總是失敗,提示permission deny。問題是ssh 無密碼訪問的問題。這里的jenkins 訪問 遠程主機 ?使用的不是默認名字(id_rsa等)的密鑰。解決方法如下.
#在 /etc/ssh/ssh_config 添加如下內容
#指明命令中 需要ssh 遠程的主機鎖使用的用戶和密鑰。
Host172.10.30.228user root
IdentityFile~/.ssh/id_rsa1
#防止彈出判斷選擇
StrictHostKeyChecking no
二. gitlab 配置
1. gitlab webhook 設置
進入 project .點擊 setting-----> integrations設置。注意不是 管理區域的 系統鉤子.
填寫 上面 ?構建觸發器中的 url. 安全令牌有無都可以(令牌來自jenkins構建觸發器中選中的Build When a change is pushed右下角的高級選項,有一個Secret token,點擊 Generate,會生成一個安全代碼).
點擊 test來測試是否可以成功觸發.
出現的問題: test 的時候 出現403 anonymous is missing the Job/Build permission??錯誤。參考:?https://blog.csdn.net/u011662047/article/details/80525503
兩步解決問題 (測試了,其實只需要第一步就ok了。)
1. 系統管理 -> 插件管理 -> 安裝插件gitlab hook
2. 系統管理 -> 系統設置 -> 去掉 Enable authentication for ‘/project’ end-point
其他朋友總結的錯誤:
再記錄一個坑: ?gitlab 這邊 test web hook 成功。但是push后不觸發jenkins的構建.找了半天是gitlab 的服務sidekiq 和unicorn沒有啟動,吐血了。。。
總結
以上是生活随笔為你收集整理的jenkins gitlab php,jenkins(8): 实战jenkins+gitlab持续集成发布php项目(代码不需要编译)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php sql漏洞修复,php sql注
- 下一篇: php manager 怎么用,Wind