一. 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项目(代码不需要编译)的更多相关文章

  1. 【iOS】Jenkins Gitlab持续集成打包平台搭建

    Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...

  2. 构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境

    构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境 整个环境的结构图. 一.准备工作 gitlab和harbor我是安装在kubernetes集群外 ...

  3. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...

  4. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...

  5. Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化

    Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成--部署方案优化 之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个 ...

  6. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

  7. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...

  8. ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成

    为什么不用gitlab? 没有采用gitlab,因为gitlab比较吃配置,至少得2核4G的配置.采用go语言开发的gogs来代替,搭建方便(不到10分钟就能安装完成),资源消耗低,功能也比较强大,也 ...

  9. Jenkins+Ant+Git+Jmeter实现持续集成

    个人记录: 基本的配置与Jenkins+Ant+SVN+Jmeter实现持续集成的配置一样,主要在Jenkins的配置上的区别会有所不同 安装的插件: enkins安装好之后,需要为其安装gitlab ...

随机推荐

  1. 2-HTML Text Formatting Elements

    下表列举了文字格式常见的关键字 Tag Description <b> Defines bold text <em> Defines emphasized text  < ...

  2. LIght OJ 1179

    题意: 约瑟夫环问题, 给你N 个人, 没K个出队, 问最后剩下的人的编号. 思路: 直接模拟会T, 对于N个人 , 是一个约瑟夫环问题, 当第一个人出队后, (标号一定为 k % n -1) 剩下的 ...

  3. HNU 2015暑期新队员训练赛2 H Blanket

    把每个 bi *x + ri ( 0 <= ri <= ai)标记, 输出被标记 0 – N 次的个数 #include<iostream> #include<cstdi ...

  4. Python 三种过滤去重方法

    SET集合去重 set(1,1,2) REDIS去重 布隆过滤器

  5. vue v-time指令封装(接口返回时间戳 在到日期转换)

    // 全局时间戳转换指令注册Vue.directive('time',{ bind: function (el,binding) { let getTime = new Date(binding.va ...

  6. iOS -- Effective Objective-C 阅读笔记 (2)

    1: 多用类型常量, 少用 #define 预处理指令 #define 预处理指令会把碰到的所有 指定名称 一律换位 定义的内容, 这样的话, 假设此指令在某个头文件中, 那么所有引入这个头文件的代码 ...

  7. MVVM 简介

    转:https://objccn.io/issue-13-1/ 所以,MVVM 到底是什么?与其专注于说明 MVVM 的来历,不如让我们看一个典型的 iOS 是如何构建的,并从那里了解 MVVM: 我 ...

  8. 【MySql】like用法

    LIKE用法 SELECT * FROM TABLE WHERE col Like '%a';//检索以a结尾的内容 SELECT * FROM TABLE WHERE col Like '%a%'; ...

  9. Oracle数据库的状态查询

    本文来源:huang_xw 的<Oracle数据库的状态查询> 1 状态查询 启动状态 SQL语句 结果 nomount select status from v$instance; ST ...

  10. AFN 请求报 415错误解决方案

    使用 AFHTTPSessionManager  发起请求时 设置下面两句代码 manager.requestSerializer = [AFJSONRequestSerializer seriali ...