gitlab集成度很高,能够集成绝大多数的开发工具

支持内置HA,保证高并发下仍旧实现高可用性,无论gitlab服务宕机或者异常导致网络中断,仍然保证24小时不间断使用服务,无序搭建第三方高可用服务,打开内置HA工具使用它即可。

GitLab主要服务构成

1、nginx静态web服务器

作为gitlab的proxy服务器,处理所有https静态请求

2、gitlib-workhorse轻量级的反向代理服务器

处理一些较大的文件上传下载以及git push操作

3、gitlab-shell用于处理git命令和修改authorized keys列表

4、logrotate日志文件管理

5、postgresql数据库

6、redis缓存服务器

gitlab的工作流程

需要在gitlab 的web前台界面创建我们的仓库,然后再本地clone我们的项目,这里要主要的是我们在完成了前台项目仓库的创建之后,需要在我们的本地pc下安装我们的git客户端工具,保证我们可以使用git命令执行

我们的本地clone项目操作。进行分支代码操作之后,推送该项目分支至远程gitlab服务器,进行代码检查并提交至master分支合并申请,项目领导审查代码并确认合并申请,这样我们就完成了一个需求开发到项目当中,从而完成了gitlab的工作流程。

安装工作(centos7)
一、关闭firewalld防火墙,保证pc可以访问该服务器下所有资源

#systemctl stop firewalld //关闭防火墙
#systemctl disable firewalld //禁用防火墙开机启动

二、关闭SELINUX强制访问安全策略,不影响gitlab的正常运行并重启系统

vi /etc/sysconfig/selinux

SELINUX=disabled //修改后
reboot

[root@wtCentos7 ~]# getenforce //查看是否被禁用
Disabled

三、安装Omnibus Gitlab-ce package

因为gitlab本身包括很多依赖组件,手动安装比较费时间,所以gitlab公司为了方便尽快上手,推出了Omnibus Gitlab-ce package一键安装包,可以快速完成依赖以及组件完成安装。并使用内置的shell配置工具,自动配置gitlab的相关组件以及配置,简化了初学者的安装成本。

1、安装Gitlab依赖组件包

# yum -y install curl policycoreutils openssh-server openssh-clients postfix

2、配置gitlab的YUM仓库源

#curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

3、启动postfix邮件服务

让gitlab与postfix集成,发送相关任务通知给我们的管理账户

//启动邮件服务,并开机加载
#systemctl start postfix
#systemctl enable postfix

4、安装Gitlab-ce社区版本一键安装包

#yum install -y gitlab-ce

5、使用OPEN SSL命令配置相关证书,并配置config加载该证书

①首先需要手动创建一个ssl目录

mkdir -p /etc/gitlab/ssl //创建目录

②使用openssl命令创建本地私有密钥

openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key" 2048

③使用②生成的私有密钥创建SSL证书

openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"
输入:cn
Country Name (2 letter code) [XX]:

输入:bj
State or Province Name (full name) []:

输入:bj
Locality Name (eg, city) [Default City]:

输入:空格
Organization Name (eg, company) [Default Company Ltd]:

输入:空格
Organizational Unit Name (eg, section) []:

输入:gitlab.example.com
Common Name (eg, your name or your server’s hostname) []:gitlab.example.com

输入:admin@example.com
Email Address []:admin@example.com
。。。

输入:123456
A challenge password []:123456

输入:直接回车
An optional company name []:
完成安装!!!

私有密钥和ssl证书已经创建成功

[root@wtCentos7 ssl]# pwd
/etc/gitlab/ssl
[root@wtCentos7 ssl]# ll
总用量 8
-rw-r--r-- 1 root root 1066 3月 27 15:13 gitlab.example.com.csr
-rw-r--r-- 1 root root 1675 3月 27 15:09 gitlab.example.com.key

⑤根据私有密钥和ssl证书创建签署证书

openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.example.com.csr" -signkey "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.crt"
Signature ok
subject=/C=cn/ST=bj/L=bj/O= /OU= /CN=gitlab.example.com/emailAddress=admin@example.com
Getting Private key
[root@wtCentos7 ssl]# ll
总用量 12
-rw-r--r-- 1 root root 1265 3月 27 15:17 gitlab.example.com.crt
-rw-r--r-- 1 root root 1066 3月 27 15:13 gitlab.example.com.csr
-rw-r--r-- 1 root root 1675 3月 27 15:09 gitlab.example.com.key

⑥数用openssl输出pem证书 

openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
[root@wtCentos7 ssl]# ll
总用量 16
-rw-r--r-- 1 root root 424 3月 27 15:20 dhparams.pem
-rw-r--r-- 1 root root 1265 3月 27 15:17 gitlab.example.com.crt
-rw-r--r-- 1 root root 1066 3月 27 15:13 gitlab.example.com.csr
-rw-r--r-- 1 root root 1675 3月 27 15:09 gitlab.example.com.key

到此为止所有证书创建完成

⑦chmod更改文件夹为600权限 

cd /etc/gitlab/ssl
chmod 600 *

⑧编辑gitlab配置文件,将所有生成的证书配置到gitlab的配置文件中

vi /etc/gitlab/gitlab.rb

查找external_url 'http://gitlab.example.com'  ,可以改为自己的域名,或者ip,'http://gitlab.xxx.com'

----------------------------以下内容我是跟着视频里写的,不过可以不略过---start------------

搜索redirect_http_to_https把这行注释去掉,并且改为ture

# nginx['redirect_http_to_https'] = false //改为 nginx['redirect_http_to_https'] = true

了解一下Gitlab以及Centos7下安装Gitlab服务配置_nginx

 查找ssl_certificate(这里有点不理解,明明是注释了的,视频里提示要更改,反正我就跟着改了,其实也可以忽略)

# nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt"
//改为# nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"

# nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key"
//改为 # nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"

了解一下Gitlab以及Centos7下安装Gitlab服务配置_centos_02

 查找ssl_dhparam

# nginx['ssl_dhparam'] = nil # Path to dhparams.pem, eg. /etc/gitlab/ssl/dhparams.pem
//改为# nginx['ssl_dhparam'] = /etc/gitlab/ssl/dhparams.pem # Path to dhparams.pem, eg. /etc/gitlab/ssl/dhparams.pem

了解一下Gitlab以及Centos7下安装Gitlab服务配置_git_03

----------------------------以上内容我是跟着视频里写的,不过可以不略过---end------------

保存退出

⑨加载配置并重启gitlab

gitlab-ctl reconfigure

等待完成,不要终止。

⑩启动gitlab

gitlab-ctl restart

找到gitlab下nginx代理工具(此处可不修改,假如有需要跳转,那么可修改)

# vi /var/opt/gitlab/nginx/conf/gitlab-http.conf
server_name gitlab.example.com;
rewrite ^(.*)$ https://$host$1 permanent;

然后配置host指向虚拟机ip

192.168.63.137 gitlab.example.com

了解一下Gitlab以及Centos7下安装Gitlab服务配置_git_04

 登录操作的默认密码在初始化文件里

vim /etc/gitlab/initial_root_password

了解一下Gitlab以及Centos7下安装Gitlab服务配置_git_05


账号默认是root或者admin@example.com,参考官方https://about.gitlab.cn/install/

了解一下Gitlab以及Centos7下安装Gitlab服务配置_centos_06


 https://docs.gitlab.cn/omnibus/installation/