搭建GitLab持续集成环境 java版_搭建GitLab+Jenkins持续集成环境图文教程

GitLab是一个代码仓库,用来管理代码。Jenkins是一个自动化服务器,可以运行各种自动化构建、测试或部署任务。所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定频率自动运行测试、构建和部署的任务,帮组开发团队更高效的集成和发布代码。

下面是我最近安装GitLab+Jenkins环境的一个过程,记录下来,以备日后参考。

另外,这篇文章虽然很长,讲得很琐碎,但是仍有未能描述清楚的地址,如果按照这篇文章未能搭建成功,请耐心分析,也可从官方文档 找找灵感,继续下去总会成功的。

环境

本文将在单机上搭建一个GitLab+Jenkins环境,两者分别使用不同的端口,操作系统是ubuntu 16。

安装GitLab

这里参照官网安装教程,命令是和官网一样,不过有些地方有特殊说明,所以,可以直接参照本小节来安装。

1、安装GitLab依赖

sudo apt-get install curl openssh-server ca-certificates postfix

注意,在安装postfix的时候,选择“internet site”:

0818b9ca8b590ca3270a3433284dd417.png

然后,“system mail name”填写你的服务器的IP地址(下面这张图只是):

0818b9ca8b590ca3270a3433284dd417.png

为什么要填IP地址呢?

这是因为,如果自己手上没有已注册的域名的话,随便填写一个域名是解析不了的。而这里填写的域名对GitLab影响很大,比如我这里随便填为“qsjn.com”,那我在GitLab中创建的项目默认就会使用“git@qsjn.com”这样的地址,这就会带来不必要的麻烦。但是,如果你真的有注册域名的话,还是建议填写你的注册域名。

2、下载和安装GitLab

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

sudo apt-get install gitlab-ee

3、配置GitLab

GitLab默认会占用80和8080端口,很不巧,Jenkins默认也会使用8080端口,所以,这一步操作将会修改GitLab的默认端口为11000和11001,如果你还是希望使用默认端口的话,可以跳过这一步。

sudo vi /etc/gitlab/gitlab.rb

修改 external_url为external_url 'http://:11000'

修改 unicorn['port']为unicorn['port'] = 11001

4、和启动GitLab

因为我们修改了配置,所以使用reconfigure命令重新配置

sudo gitlab-ctl reconfigure

另外说明一下,平时未修改配置的话,可以使用:

sudo gitlab-ctl start/stop

来启动和关闭GitLab.

至此,GitLab安装完毕

使用GitLab创建一个项目

1、打开http://:<11000>,登录进去,点击new group创建一个组

0818b9ca8b590ca3270a3433284dd417.png

2、接着在组里面创建一个项目

0818b9ca8b590ca3270a3433284dd417.png

生成ssh秘钥

在 GitLab 刚新建的项目都会弹出提示,说你还没有ssh key

0818b9ca8b590ca3270a3433284dd417.png

我们就点击“add an SSH Key”按钮,然后进入到添加界面,点击“generate it”

0818b9ca8b590ca3270a3433284dd417.png

这会跳到一个生成SSH Key的教程里,教程讲的比较细,这里简单讲讲在windows和在ubuntu下的操作过程。

windows

(1) 安装git

(2) 在任意文件夹—右键—点击“Git Bash Here”

(3) 在Git Bash中运行:

ssh-keygen -t rsa -C "root@" -b 4096

使用默认的地址,然后输入你将来用于登录GitLab的密码

0818b9ca8b590ca3270a3433284dd417.png

这会生成一对公钥和私钥

(4) 复制公钥到粘贴板

cat ~/.ssh/id_rsa.pub | clip

(5) 回到添加SSH Key的界面,将公钥粘贴到其中,然后点击“add key”

ubuntu

(1) 运行:

ssh-keygen -t rsa -C "root@" -b 4096

使用默认的地址,然后输入你将来用于登录GitLab的密码

0818b9ca8b590ca3270a3433284dd417.png

这会生成一对公钥和私钥

(2) 复制公钥到粘贴板

vi ~/.ssh/id_rsa.pub

全选其中文字

(3) 回到添加SSH Key的界面,将公钥粘贴到其中,然后点击“add key”

至此,在GitLab上创建项目已经完成,你可以复制运行项目主页上的命令来同步新项目到本地。

安装Jenkins

本节参考了官方安装教程,但会修改默认端口

1、下载Jenkins

这里使用了我私人的地址:

curl -O http://static.outsidelook.cn/software/jenkins/jenkins.war

或者也可使用官方的下载地址,不过可能会慢:

curl -O http://mirrors.jenkins.io/war-stable/latest/jenkins.war

2、运行Jenkins

sudo nohup java -jar jenkins.war --httpPort=12000 &

这里将jenkins的端口修改成12000,并且使用后台模式运行

至此,Jenkins安装成功,可以用浏览器打开http://:12000访问

安装和Git,GitLab插件

用浏览器打开Jenkins,点击“系统设置”

0818b9ca8b590ca3270a3433284dd417.png

点击“插件管理”

0818b9ca8b590ca3270a3433284dd417.png

切换到“可选插件”,分别搜索“GitLab Plugin”和“Git Plugin”,然后点击“直接安装”。如果在“可选插件”里没有搜到,可能默认你已经安装了,可以在“已安装”里查看

0818b9ca8b590ca3270a3433284dd417.png

安装完会显示:

0818b9ca8b590ca3270a3433284dd417.png

Git插件要在服务器上运行:

git --version

检查,如果报错的话,可以运行:

sudo apt-get install git

来安装Git客户端

配置GitLab插件

首先打开GitLab,点击“setting”——“Account”,复制“Private token”备用

0818b9ca8b590ca3270a3433284dd417.png

打开Jenkins,点击“系统设置”——“系统设置”

0818b9ca8b590ca3270a3433284dd417.png

点击“配置”下拉框,选择“Gitlab”选项

0818b9ca8b590ca3270a3433284dd417.png

配置GitLab,”Connection Name”随便填,“Git Host URL”填GitLab的访问地址,然后点“Add”——“jenkins”

0818b9ca8b590ca3270a3433284dd417.png

在弹出框里,“kind”选择“GitLab API Token”,将先前复制的“Private token”粘贴到“API token”输入框中,然后点击“Add”

0818b9ca8b590ca3270a3433284dd417.png

选择刚刚新建的“Credentials”

0818b9ca8b590ca3270a3433284dd417.png

设置完了,要测试一下能否连接成功,点击“test connection”,要看到返回“Success”才行

0818b9ca8b590ca3270a3433284dd417.png

然后点击页面底下的“apply”,再点击“save”

0818b9ca8b590ca3270a3433284dd417.png

配置Git插件

打开Jenkins,点击“系统设置”——“系统设置”

0818b9ca8b590ca3270a3433284dd417.png

点击“配置”下拉框,选择“Git plugin”选项(见下图中倒数第五个选项)

0818b9ca8b590ca3270a3433284dd417.png

设置Git插件的全局配置(在第一次commit前,这些信息都可以在GitLab的项目的首页里找到)

0818b9ca8b590ca3270a3433284dd417.png

创建一个Jenkins任务

在jenkins里,一个任务叫做一个job,首先我们创建一个job

0818b9ca8b590ca3270a3433284dd417.png

“item name”可以随便起,然后点击“构建一个自由风格的软件项目”

0818b9ca8b590ca3270a3433284dd417.png

点击“OK”

0818b9ca8b590ca3270a3433284dd417.png

至此,创建一个Job成功了

配置Job

首先,要给服务器生成一个“SSH Key”,登录服务器,执行:

ssh-keygen -t rsa -C "root@" -b 4096

记住公钥的地址,默认放在:

~/.ssh/id_rsa.pub

然后进入job里面,点击“系统设置”——“源码管理”——“Git”,然后去GitLab中复制项目地址,粘贴到“Repository URL”,然后点击“credentials”后面的“Add”按钮

0818b9ca8b590ca3270a3433284dd417.png

在弹出页面里面,

“Kind”选择“SSH Username with private key”,

“Username”填“root”,

“PrivateKey”选择“From a file on jenkins master”,然后将服务器的公钥地址粘贴进去

“passphrase”填创建秘钥时的设置的密码,未设置可不填

然后点击“Add”

0818b9ca8b590ca3270a3433284dd417.png

在“credentials”里选择我们刚刚创建的认证方式:

0818b9ca8b590ca3270a3433284dd417.png

如果没报错,说明成功了,点击页面底部的“apply”和“save”。如果出错了,会在“Repository URL”和“Credentials”之间显示红色的错误信息。

接下来就要设置自动构建配置了,还是在这个页面,勾选“Pull SCM”,这个选项会每隔一段时间检查一下GitLab仓库中代码是否有更新,有的话就执行构建操作。日程表如何设置,在这个输入框下面有说明。

0818b9ca8b590ca3270a3433284dd417.png

在build栏目里,选择“jenkins execute shell”,然后输入你项目的构建命令(这依赖于你的项目,如Maven的maven build,gulp的gulp xxx 等等)

0818b9ca8b590ca3270a3433284dd417.png

至此,所有工作已经完成,现在你提交代码到GitLab,jenkins会每隔一段时间帮你运行一次构建命令,这样大家的代码自动集成到一起,出了错的话很快就知道了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值