一、搭建gitlab

  ps:不是这方面的专家,主要还是一键式安装为主。

  1、进入官网:https://about.gitlab.com/gitlab-com/

  2、选择自己的操作系统:我这边选择的ubuntu 14

  3、根据提示的方式进行安装(不过一般都安装不成功,主要是墙的太厉害了)

  -------------------------------------------------------

  所以我自己选择自载deb包,利用dpkg -i命令进行安装

  1、可以先根据官方提示安装依赖包,一般是 openssh-server postifx等,前者是ssh授权登录使用,后者是gitlab默认的邮件传输软件

  2、下载deb包(centos/red hat系列的是另外一个rpm的),拷贝到/tmp目录下

  (如果网络可以连接下载的话,可以到https://packages.gitlab.com/gitlab/gitlab-ce下载,我是使用了一个阿里云香港的服务器先下载到服务器,再用本地的VPN下载,这样速度也才100kb左右,不过没办法,不用这个的话才最多十几kb的下载速度)

  ----------------

  百度云盘分享:

deb(Debian系列的linux,如ubuntu):
地址:http://pan.baidu.com/s/1dELDoEd
提取密码:j3rc rpm(redhat系列,如centos)
链接: http://pan.baidu.com/s/1c1aQYy
密码: yma9

  3、执行解压安装

dpkg -i /tmp/gitlab-ce_8.3.2-ce.0_amd64.deb
# rpm
# rpm -i /tmp/gitlab-ce_8.3.2-ce.0_amd64.rpm

  

  4、安装好之后,根据提示执行

  

gitlab-ctl reconfigure

  

  5、修改http访问的启动端口,gitlab默认使用的nginx

  

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

 将类似于下面的端口80改成自定义的端口,如:8080

server {
listen *:;

  6、重启gitlab

gitlab-ctl restart

  7、访问域名地址和端口(前面修改的8080),如:http://gitlab.gabin.top:8080

  默认的账号是:root  

  密码:5iveL!fe

  新版本好像会直接让你重设密码,账号也是root。

  

二、安装jenkins

  1、进入官网:https://jenkins.io/index.html

  2、选择自己适合的系统安装

  3、可以选择按照页面上方的命令提示进行安装,也可以选择下载下方的deb包上传到服务器上利用dpkg -i的命令进行解压安装  

# 添加仓库到apt软件管理
wget -q -O - http://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo deb http://pkg.jenkins.io/debian-stable binary/ >> /etc/apt/sources.list
# 更新apt
sudo apt-get update
# 安装jenkins
sudo apt-get install jenkins
# 下面是使用dpkg 安装deb包的方法
# dpkg -i gitlba-ce.deb

  4、修改jenkins端口

  

vim /etc/init.d/jenkins
# centos的目录可能不一样,使用sudo find / -name 'jenkins'找一下即可

  找到:HTTP_PORT改成自己需要的端口

  5、重启jenkins

service jenkins restart

  6、访问jenkins,并安装所需的插件(Maven、Gitlab Hook、git),这些大家自己研究一下,不难。

三、在gitlab中创建一个git项目

  1、通过web系统进行操作

  2、编辑项目,进入项目页,在右上角点击编辑按钮(不同版本可能界面会有不同)

  3、选择web hooks进行配置,其实就是增加一个推送地址,每当项目提交的时候就往这个地址推送数据,这边的url地址需要填写jenkins项目中的地址

四,配置jenkins job

  1、新建一个job(如果已经成功安装maven插件,则会出现maven项目的选择)

  2、配置项目源代码管理

  注意这边需要配置一个授权账号,我这边配置的是gitlab所在服务器的ssh私钥

  3、配置构建触发器,就是开始执行源码更新->编译->测试->部署的条件,我们这边选择gitlab hook,就是gitlab的钩子,只要gitlab有提交代码或其他设置的条件,就会自动执行构建操作,标红的地址上面就有提到过,是用于gitlab中web hooks地址填写栏位的,但要注意这个地址必须是可以在gitlab服务器上访问的。

  4、配置构建成功之后部署生产环境,这边选择只在成功的情况下部署,另外使用BUILD_ID=dontKillMe来执行一个shell脚本

(因为jenkins执行构建完成后会自动kill进程,如果部署环境还没完成,则会终端),这边的update.sh是一个生产环境下的自动部署脚本,为了保证jenkins有这个执行脚本的权限,我们可以设置/etc/default/jenkins文件中的用户改为root,这样我们就有执行ssh的相关权限了。

#JENKINS_USER=$NAME
#JENKINS_GROUP=$NAME
JENKINS_USER=root
JENKINS_GROUP=root

  5、在gitlab的项目编辑页面中选择web hooks,点击已经添加的web hooks的测试按钮,看是否能正常触发构建。

持续集成环境(Gitlab+jenkins+shell)的更多相关文章

  1. 项目持续集成环境(jenkins + SVN + maven + tomcat)

    整体流程 每次SVN上代码有变动,触发自动构建动作,并部署到服务器的tomcat上,具体流程: 1.SVN上提交代码修改 2.maven执行Goals 3.将web工程打成war包 4.关闭服务器的t ...

  2. centos下搭建Jenkins持续集成环境(安装jenkins)

    1.安装JDK yum install -y java 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这里下载安装. 1 wget -O /etc/yum.repos.d/ ...

  3. 有手就行2——持续集成环境—Jenkins安装、插件、用户权限及凭证管理

    有手就行2--持续集成环境-Jenkins安装.插件.权限及凭证管理 持续集成环境(1)-Jenkins安装 持续集成环境(2)-Jenkins插件管理 持续集成环境(3)-Jenkins用户权限管理 ...

  4. Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现

    前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...

  5. Docker+Jenkins持续集成环境(5): android构建与apk发布

    项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...

  6. Jekens 配置多项目SCM GitLab+Jenkins持续集成环境

    参考: 搭建GitLab+Jenkins持续集成环境图文教程 https://blog.csdn.net/ruangong1203/article/details/73065410 Jenkins中配 ...

  7. [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...

  8. CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更 ...

  9. Git Hooks、GitLab CI持续集成以及使用Jenkins实现自动化任务

    Git Hooks.GitLab CI持续集成以及使用Jenkins实现自动化任务 前言 在一个共享项目(或者说多人协同开发的项目)的开发过程中,为有效确保团队成员编码风格的统一,确保部署方式的统一, ...

  10. Jenkins+ANT+SVN快速搭建持续集成环境

    伟大的语言都从helloworld开始,这里我们用Jenkins+ANT+SVN来搭建这一套持续集成环境. 环境准备: 一台已经配置好Jenkins和Ant的机器. 项目准备: 用Ecplise建立一 ...

随机推荐

  1. 转:玩转Google开源C++单元测试框架Google Test系列

    转自http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 前段时间学习和了解了下Google的开源C++单元测试框架Google ...

  2. springboot工程读取配置文件application.yml的写法

    现在流行springboot框架的项目,里面的默认配置文件为application.yml,我们怎样读取这个配置文件呢? 先贴上我得配置文件吧 目录结构 里面内容 1 写读取配置文件的工具类 @Con ...

  3. json-lib 使用教程

    //关于java map与JSONObject类互相转换 Map<String,Object> map=new HashMap<String,Object>(); map.pu ...

  4. 哎,就硬盘还不是最掉价的,1999的自配主机,VIRTUALBOX里虚拟机,聊以自慰吧。

    安装时注意的问题,要是不测试MYSQL,则CONFIGURE参数和DISABLE-MYSQL,在编译时有提示的. 然后就是LIBTOOL包过老的问题,以及未安装LIBTOOL包的问题. 最后,是运行命 ...

  5. Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0

    如果遇到这个问题,首先考虑以下原因: 你是否在setText()方法中设置了一个int型变量,比如setText(10). 这样Android系统就会主动去资源文件当中寻找, 但是它不是一个资源文件I ...

  6. 「Poetize10」能量获取

    描述 Description “封印大典启动,请出Nescafe魂珠!”随着 圣主applepi一声令下,圣剑护法rainbow和魔杖护法freda将Nescafe魂珠放置于封印台上.封印台是一个树形 ...

  7. 【日语】アップデート(update)一吻定情OP

    ねぇ~気づいてる? nee ~ kizu iteru ?呐~注意到吗? 私はアップデートしているよwatashi ha appude^to shiteiruyo我期待更新 いつか届きますようにitsu ...

  8. 引用 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Fra

    引用 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary A ...

  9. LinGo:疏散问题——线性规划,0-1规划

    个部门(A.B.C.D.E)组成.现要将它的几个部门迁出甲市,迁至乙市或丙市. (每个城市最多接纳三个部门) 除去因政府鼓励这样做以外,还有用房便宜,招工方便等好处.对这些好处已作出数量估计,其值如下 ...

  10. Spring的MVC控制器返回ModelMap时,会跳转到什么页面?

    控制器中的方法如下: @RequestMapping("/person/personDisplay") public ModelMap defaultHandler() { Sys ...