GitLab介绍

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

系统环境准备

建议:内存4G以上不然带不动

1
2
3
4
[root@hejianlai-jenkins ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@hejianlai-jenkins ~]# uname -r
3.10.0-693.el7.x86_64

#关闭firewalld和NetWorkManager

1
2
[root@hejianlai-jenkins ~]# systemctl stop firewalld
[root@hejianlai-jenkins ~]# systemctl stop NetWorkManager

#永久关闭

1
2
[root@hejianlai-jenkins ~]# systemctl disable firewalld
[root@hejianlai-jenkins ~]# systemctl disable NetWorkManager

#关闭selinux

1
2
[root@hejianlai-jenkins ~]# sed -i  's/SELINUX=enforcing/SELINUX=disabled/g'  /etc/selinux/config
[root@hejianlai-jenkins ~]# setenforce 0

#更换阿里源和下载epel源

1
2
3
[root@hejianlai-jenkins ~]#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@hejianlai-jenkins ~]#wget -O /etc/yum.repos.d/CentOS-Base.repo http: //mirrors.aliyun.com/repo/Centos-7.repo
[root@hejianlai-jenkins ~]#wget -O /etc/yum.repos.d/epel.repo http: //mirrors.aliyun.com/repo/epel-7.repo

#yum源更新,重启系统

1
[root@hejianlai-jenkins ~]# yum update && reboot

#安装相应工具

1
2
[root@hejianlai-jenkins ~]yum install curl policycoreutils openssh-server openssh-clients postfix -y
[root@hejianlai-jenkins ~]systemctl start postfix

#新建GitLab源

1
2
3
4
5
6
7
8
9
10
[root@hejianlai-jenkins ~]# vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http: //mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https: //packages.gitlab.com/gpg.key
[root@hejianlai-jenkins ~]# yum makecache
[root@hejianlai-jenkins ~]# yum install -y gitlab-ce

#安装git工具

1
[root@hejianlai-jenkins ~]# yum install git -y

#加载配置文件并启动,时间稍长

1
[root@hejianlai-jenkins ~]# gitlab-ctl reconfigure

#gitlab-ctl其他命令

1
2
3
4
5
启动:gitlib-ctl start
关闭:gitlab-ctl stop
重启:gitlab-ctl restart
重载配置:gitlab-ctl reconfigure
查看状态:gitlab-ctl status

#查看端口保证80端口不被占用

1
2
3
4
[root@hejianlai-jenkins ~]# lsof -i:80
COMMAND PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   700       root    7u  IPv4  16903      0t0  TCP *:http (LISTEN)
nginx   804 gitlab-www    7u  IPv4  16903      0t0  TCP *:http (LISTEN)

#gitlab配置文件路径

1
/etc/gitlab/gitlab.rb

浏览器登录gitlab,输入http://ip进入下图:

GitLab+Jenkins部署及实现集成_第1张图片

先输入密码,然后Register填写账户信息进入新建项目

GitLab+Jenkins部署及实现集成_第2张图片

填写ssh认证

GitLab+Jenkins部署及实现集成_第3张图片

测试拉取代码

1
2
3
4
5
6
7
8
9
10
[root@hejianlai-jenkins ~]# git clone git@hejianlai-jenkins:web/web-demo.git
Cloning  into  'web-demo' ...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.
[root@hejianlai-jenkins ~]# ls
anaconda-ks.cfg  epel-release-latest-7.noarch.rpm  web-demo
[root@hejianlai-jenkins ~]# ls web-demo/
index.html  README.md

上传代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@hejianlai-jenkins web-demo]# echo  "test"  >>test.txt
 
[root@hejianlai-jenkins web-demo]# git config --global user.email  "[email protected]"
[root@hejianlai-jenkins web-demo]# git config --global user.name  "Your Name"
[root@hejianlai-jenkins web-demo]# git add *
[root@hejianlai-jenkins web-demo]# git commit -m  "add test.txt"
[master 5df66f7] add test.txt
  1 file changed, 1 insertion(+)
  create mode 100644 test.txt
[root@hejianlai-jenkins web-demo]# git push
warning: push. default  is  unset; its  implicit  value  is  changing  in
Git 2.0  from  'matching'  to  'simple' . To squelch  this  message
and maintain the current behavior after the  default  changes, use:
 
   git config --global push. default  matching
 
To squelch  this  message and adopt the  new  behavior now, use:
 
   git config --global push. default  simple
 
See  'git help config'  and search  for  'push.default'  for  further information.
(the  'simple'  mode was introduced  in  Git 1.7.11. Use the similar mode
'current'  instead of  'simple'  if  you sometimes use older versions of Git)
 
Counting objects: 4, done.
Delta compression  using  up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 314 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@hejianlai-jenkins:web/web-demo.git
    18a57cf..5df66f7  master -> master

GitLab上查看:
GitLab+Jenkins部署及实现集成_第4张图片

 

#安装JenKins

1
2
3
4
5
6
7
8
9
[root@hejianlai-jenkins web-demo]# sudo wget -O /etc/yum.repos.d/jenkins.repo https: //pkg.jenkins.io/redhat-stable/jenkins.repo
 
[root@hejianlai-jenkins web-demo]# sudo rpm --import https: //pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@hejianlai-jenkins web-demo]# yum install java jenkins –y
#JenKins默认端口为8080,因为gitlab已经占用我们需要更改。
 
[root@hejianlai-jenkins web-demo]# vim /etc/sysconfig/jenkins
 
JENKINS_PORT= "8080"   ---> JENKINS_PORT= "8081"

#启动JenKins

1
2
[root@hejianlai-jenkins web-demo]# /etc/init.d/jenkins start
Starting jenkins (via systemctl):                          [  OK  ]

#浏览器登录JenKins,地址:http://192.168.247.135:8081/

正在启动;

GitLab+Jenkins部署及实现集成_第5张图片

进入有个密码路径,系统上查看这个文件并把密码复制粘贴才能登录;

GitLab+Jenkins部署及实现集成_第6张图片

选择推荐安装;

GitLab+Jenkins部署及实现集成_第7张图片

创建一个管理员

GitLab+Jenkins部署及实现集成_第8张图片

开始使用jenkins

GitLab+Jenkins部署及实现集成_第9张图片

下面实现持续集成

进入主页--创建一个新任务

GitLab+Jenkins部署及实现集成_第10张图片

 输入项目名称---构建一个自由风格的软件项目---确认

GitLab+Jenkins部署及实现集成_第11张图片

 General--填写项目描述

 GitLab+Jenkins部署及实现集成_第12张图片

源码管理--安装git插件--授权认证

 GitLab+Jenkins部署及实现集成_第13张图片

ssh私钥认证我们在系统上查看粘贴进去即可。

GitLab+Jenkins部署及实现集成_第14张图片

GitLab+Jenkins部署及实现集成_第15张图片

Credentials—选择root

GitLab+Jenkins部署及实现集成_第16张图片

查看gitlab版本

1
2
[root@hejianlai-jenkins ~]# rpm -aq|grep gitlab
gitlab-ce-10.6.0-ce.0.el7.x86_64

GitLab+Jenkins部署及实现集成_第17张图片

点击立即构建

 GitLab+Jenkins部署及实现集成_第18张图片

点击控制台输出查看

GitLab+Jenkins部署及实现集成_第19张图片

控制台输出,SUCCESS则构建成功

 转载地址:https://www.cnblogs.com/Dev0ps/p/8663262.html