jenkins gitlab php,jenkins(8): 实战jenkins+gitlab持续集成发布php项目(代码不需要编译)...

一. jenkins 的配置

1.前提条件安装了GitLab Plugin (源码管理使用),GitLab Hook(gitlab webhook需要)

Manage Jenkins--->Manage Plugin ---->Available 去找到安装。

2.  创建 job ,选择 自由风格的项目,点击ok

5079998045d8f6e4e131d658d3bfc9a0.png

3. 源码管理

描述配置

aa23270180dc57e38ae90a0ddd74b0fa.png

源码管理:要想连接 gitlab服务器,有两种选择,用http协议或者 ssh协议,这里我们使用ssh

首先填写  gitlab 的url

e6d6dcdcc1b81af47bd496986c8d998c.png

配置到gilab 的认证: Credentials ,点击ADD,复制 gitlab ssh密钥对的私钥到下图.

d7228eea2848de923d09ac1263e84801.png

认证成功如下图:没有任何报错了

08ec90aae2102b50b6e164d6a614afed.png

说明:  如果 gitlab 配置了ssh 密钥对,jenkins这边也添加了 包含私钥的凭证还是无法正常连接的话,参考: https://www.cnblogs.com/yitianyouyitian/p/10027552.html

4. 构建触发器设置

勾选如下, 下面的url是回调地址, gitlab webhook 那边的设置会用上.

a069b4150c06ac5f6a94c3b27ea8b349.png

区分分支 触发构建 设置如下: 只用master分分支变化后才会触发构建.

0f39b2eedc0d7fd75ff5eba530080aba.png

5. 构建

选择  Execute shell

2b96f2ea766e2d8582286e6419252414.png

shell脚本编写,将 代码同步到web服务器目录,重启服务。

注意: shell命令的执行 是在 jenkins 的job 的workspace 目录进行的. 这里是项目 php1的工作目录  /root/.jenkins/workspace/php1 。jenkins从gitlab pull的代码就是放置在这里.

f459d6043b2c21f4ff6fe37d24039006.png

注意: 在这踩坑了,执行 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来测试是否可以成功触发.

1142399850f2e5cb317c633035c0d646.png

出现的问题: 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

26b56d86ac66849e60fc6506cb56a185.png

其他朋友总结的错误:

再记录一个坑:  gitlab 这边 test web hook 成功。但是push后不触发jenkins的构建.找了半天是gitlab 的服务sidekiq 和unicorn没有启动,吐血了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值