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 远程的主机锁使用的用户和密钥。
Host 172.10.30.228
user 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

其他朋友总结的错误:
https://www.cnblogs.com/zblade/p/9480366.html
再记录一个坑: gitlab 这边 test web hook 成功。但是push后不触发jenkins的构建.找了半天是gitlab 的服务sidekiq 和unicorn没有启动,吐血了。。。
jenkins(8): 实战jenkins+gitlab持续集成发布php项目(代码不需要编译)的更多相关文章
- 【iOS】Jenkins Gitlab持续集成打包平台搭建
Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...
- 构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境
构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境 整个环境的结构图. 一.准备工作 gitlab和harbor我是安装在kubernetes集群外 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...
- Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成--部署方案优化 之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...
- ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成
为什么不用gitlab? 没有采用gitlab,因为gitlab比较吃配置,至少得2核4G的配置.采用go语言开发的gogs来代替,搭建方便(不到10分钟就能安装完成),资源消耗低,功能也比较强大,也 ...
- Jenkins+Ant+Git+Jmeter实现持续集成
个人记录: 基本的配置与Jenkins+Ant+SVN+Jmeter实现持续集成的配置一样,主要在Jenkins的配置上的区别会有所不同 安装的插件: enkins安装好之后,需要为其安装gitlab ...
随机推荐
- 基于数组的循环队列(C++模板实现)
循环队列使用数组实现的话,简单.方便.之前实现的队列,当尾端索引到达队列最后的时候,无论前面是否还有空间,都不能再添加数据了.循环队列使得队列的存储单元可以循环利用,它需要一个额外的存储单元来判断队列 ...
- Linux系统的命令别名功能(转)
在管理和维护Linux系统的过程中,将会使用到大量命令,有一些很长的命令或用法经常被用到,重复而频繁地输入某个很长命令或用法是不可取的.这时可以使用命令别名功能将这个过程简单化. 1.系统定义的别名通 ...
- Mysql 数据库增删改查
数据插入 语法:INSERT INTO Table_name(field1,field2……fieldN) values(value1,vlaue2,…valueN) 单行插入用户类型 INSERT ...
- Ex 4_10 给定一个有向图G=(V,E),其中边...(bellman-ford算法的应用).._第十二次作业
在bellman-ford算法中,循环n-1(n为顶点个数)次可以找出从源点到其他顶点的最多n-1条边的最短路径,若循环k次则可以找出从源点到其他顶点的最多k条边的最短路径. package org. ...
- Confluence 6 用自带的用户管理
在一些特定的情况下,你可能希望禁用 Confluence 自带的用户管理或完全使用外部的用户目录进行用户管理.例如 Jira 软件或者 Jira Service Desk.你可以在 Confluenc ...
- ionic3 启动白屏处理
重点就就三点 1.设置不自动隐藏splashscreen页面,设置最多延迟10s再关闭,这样可以不显示启动前的白画面 <preference name="AutoHideSplashS ...
- NIO(一)
1.NIO是什么? 是JDK1.4之后推出的一个新的IO操作(netty.mina通讯框架的底层都是NIO实现的连接) 2.NIO和IO的区别(阻塞只会出现在网络通讯中,都是同步) NIO:非阻塞类型 ...
- Python基础之模块与包
一.模块 1.什么是模块? 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2.为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函 ...
- swagger2常用注解说明
说明: 1.这里使用的版本:springfox-swagger2(2.4)springfox-swagger-ui (2.4) 2.这里是说明常用注解的含义和基本用法(也就是说已经对swagger进行 ...
- jdk的卸载及安装+环境变量的配置
一.卸载:在控制面板中删除.这是最基本的方式.2. 采用360安全卫士的软件卸载工具,记得将有关的注册表信息全部删除.3. 在“运行”中输入Regedit,打开注册表编辑器,找到HKEY_LOCAL_ ...