【Jenkins+Ansible+Gitlab 自动化部署三剑客】学习笔记-第二章 2-1~2-3 GitLab介绍与安装配置管理

一、GitLab介绍

1.1、什么是GitLab

在这里插入图片描述

1.2、GitLab和GitHub的不同

在这里插入图片描述

1.3、GitLab的优势和应用场景

在这里插入图片描述
在这里插入图片描述

1.4、GitLab主要服务构成

在这里插入图片描述
在这里插入图片描述

二、GitLab的工作流程

在这里插入图片描述
在这里插入图片描述

三、GitLab安装配置管理

注:测试环境为一台Centos7.3的虚拟机;

3.1、GitLab预安装环境准备

3.1.1、关闭防火墙并禁用开机启动

# 1.查看当前的防火墙状态
firewall-cmd --state
# 2.禁用防火墙
systemctl stop firewalld
# 3.警用防火墙开机启动
systemctl disable firewalld
# 永久关闭后,开启防火墙(开机自动启用)
systemctl enable firewalld

在这里插入图片描述

3.1.2、关闭selinux强制访问策略

关闭该策略防止该策略影响GitLab的正常运行。

# 使用vim编辑器打开selinux配置文件
vim /etc/sysconfig/selinux

将该配置文件下的SELINUX=enforcing修改为SELINUX=disabled
在这里插入图片描述
在这里插入图片描述

# 执行reboot命令使上面的配置生效
reboot

执行后出现下面的界面;
在这里插入图片描述
使用ssh [email protected]命令重新登录下Linux系统;
在这里插入图片描述

# 查看selinux是否被禁用
getenforce

在这里插入图片描述

3.2、GitLab安装(ce社区版)

3.2.1、安装GitLab的依赖包

# 安装GitLab的依赖包
yum install curl policycoreutils openssh-server openssh-clients postfixs

3.2.2、安装GitLab的依赖包

# 安装gitLab包的仓库地址
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
# 启动postfix服务
systemctl start postfix
# 开启启动postfix服务
systemctl enable postfix

开始启动GitLab安装向导

# 开始启动GitLab安装向导
yum -y install gitlab-ce

在这里插入图片描述

3.2.3、创建证书

3.2.3.1、创建私有密钥

# 创建ssl目录
mkdir -p /etc/gitlab/ssl
# 创建本地私有密钥
openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key" 2048

在这里插入图片描述

3.2.3.2、使用上面创建的私有密钥创建csr证书

# 创建csr证书
openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"

在这里插入图片描述
使用ll命令查看,可以看到我们的密钥和csr证书都已经创建了
在这里插入图片描述

3.2.3.3、使用私有密钥和csr证书创建crt证书

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"
# 509 -req: 代表签署证书的格式
# -days 365:代表签署证书的有效时限
# -in:引入csr证书
# -signkey:使用密钥
# -out:输出crt证书

在这里插入图片描述

3.2.3.4、创建pem证书

openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048

在这里插入图片描述
使用ll命令查看可以看到dhparams.pem文件已经创建完成
在这里插入图片描述

3.2.4、更改证书的权限

3.2.4.1、Linux文件权限简单说明

在这里插入图片描述
如上图文件的权限分三块:
【文件或文件夹】【owner权限】【group权限】【others权限】
【文件是-,文件夹是d】【r/w/x相加】【r/w/x相加】【r/w/x相加】
rwx说明如下:
r 读权限read 4
w 写权限write 2
x 操作权限execute 1

3.2.4.2、修改证书的权限

# 将生成的四个证书文件的权限改为仅root用户可以查看和修改
chmod 600 *

在这里插入图片描述

3.2.5、将上面生成的证书配置到GitLab的配置文件中

# 编辑gitlab的配置文件
vim /etc/gitlab/gitlab.rb

修改配置文件中的external_url将原来的http修改为https
在这里插入图片描述
退出编辑模式后搜索redirect_http_to_https,将该行取消注释,并将false修改为true;并修改下图红色框部分的证书路径配置。
在这里插入图片描述
修改完后保存退出。
重启GitLab的配置

# 重启GitLab的配置
gitlab-ctl reconfigure

经过漫长等待至此配置重启成功
在这里插入图片描述

3.2.6、更改GitLab的Http配置文件

# 打开GitLab的配置文件
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

搜索server_name字段,在下面添加下图中红色框中的内容
在这里插入图片描述

# 重启http配置
gitlab-ctl restart

在这里插入图片描述

3.2.7、更改本机的hosts文件,使得可以用gitlab.example.com域名访问

本人使用的是win10系统,修改win10的hosts文件还会有权限不足的问题;(此处找度娘解决)
C:\WINDOWS\system32\drivers\etc;编辑hosts文件
在这里插入图片描述
保存后打开本机的浏览器使用gitlab.example.com访问
But error~~ 如图我的虚拟机中已经用Linux部署了一个应用,所以使用这个域名访问不能访问到gitlab

3.2.8、遇到的问题

在浏览器中通过IP+端口的方式访问,发现浏览器返回如下界面。
在这里插入图片描述

3.2.8.1、由于8080端口已部署了一个应用,导致端口冲突

在看到如上图错误后,首先百度了下。很多说的都是8080端口冲突的问题;

# 查看错误日志
cat /var/log/gitlab/unicorn/unicorn_stderr.log

在这里插入图片描述
从上图我们可以看到是由于我们的8080端口已被占用导致的。

# 打开配置文件
vim /etc/gitlab/gitlab.rb

修改端口,在这里有一个坑!!!!,从百度查询到的方法都说了是端口的问题,也给出了方案是修改这两个地方,但是给出的示例中上下两个参数的端口是同一个,重启配置后发现还是报502。修改成别的不被占用的端口也报端口占用。于是就把上下两个端口修改成了不同的端口。重启后发现是可以的。
在这里插入图片描述
注意:在前面的配置中,我们还需要去修改一个GitLab的Http配置文件即3.2.6小节中提到的,但是如果在这里配置了之后,我们在执行下面的两行代码重启配置和gitlab之后

gitlab-ctl reconfigure
gitlab-ctl restart 

打开gitlab-http.conf这个配置文件会发现,这个文件中的属性被自动更新了。
在这里插入图片描述

3.2.8.2、GitLab启动需要的内存不足

GitLab需要的内存最小为2G左右,如果用1G的Linux系统启动是启动不起来的。

3.2.9、登录GitLab修改密码

终于久违地见到了这个GitLab界面,然后我们需要设置我们地登录密码
在这里插入图片描述
使用账户名:root;密码:刚才设置的密码;登录系统
在这里插入图片描述

3.2.10、修改GitLab的数据存储仓库地址

3.2.10.1、创建保存GitLab的数据存储仓库文件夹

此处我的服务器上做了一个4T的机械硬盘的的挂载,挂载到了data下。如下图所示
在这里插入图片描述

# 创建保存GitLab的数据存储仓库文件夹
mkdir -pv /data/gitlab-data
# 查看data文件夹下的文件情况
ls -al

在这里插入图片描述

3.2.10.2、配置GitLab的的仓库地址

# 打开gitlab的配置文件
vim /etc/gitlab/gitlab.rb

在这里插入图片描述

 git_data_dirs({
   "default" => {
     "path" => "/data/gitlab-data"
    }
 })

3.2.10.3、重新读取GitLab的配置

# 重新读取GitLab的配置
gitlab-ctl reconfigure
# 重启GitLab服务
gitlab-ctl restart

重启之后可以看到,在我们自己创建的仓库下有了repositories文件夹;
在这里插入图片描述

3.3、使用GitLab

3.3.1、创建一个test-repo仓库

点击下图
在这里插入图片描述
在这里插入图片描述

3.3.2、test-repo仓库下载到本机桌面的repo文件夹

首先我们在本机创建一个repo的测试文件夹
双击打开桌面上安装的git工具,打开Git Bash在这里插入图片描述

# 查看当前所在的目录路劲
pwd
# 进入到桌面文件夹
cd Desktop/

在这里插入图片描述
下载

git -c http.sslverify=false clone http://192.168.2.200:8091/root/test-repo.git
# -c http.sslverify=false 用来避免本地证书无法进行克隆操作

回车后跳出弹框,输入之前的账号和密码
在这里插入图片描述
输入后提示下载完成
在这里插入图片描述

3.3.3、在test-repo仓库下编写代码测试提交

进入test-repo文件夹并编写一个test.py的文件
在这里插入图片描述
在这里插入图片描述
将文件先add到git管理中,并且commit到本地仓库
在这里插入图片描述
如果出现这个界面则需要设置一下全局的git的邮箱和姓名
在这里插入图片描述

# 提交到远程分支
git -c http.sslverify=false push origin master

但是如图,本机未加参数也可以提交
在这里插入图片描述
查看页面后,可以看到提交的内容已经可以在界面上看到了。
在这里插入图片描述

发布了76 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_38657051/article/details/99969339