一、gitlab部署与使用

一、Gitlab简介

Gitlab 是一个基于Git实现的WEB代码仓库托管软件,你可以用Gitlab自己搭建一个类似于Github一样的代码仓库,一般使用gitlab搭建私有代码仓库主要是用在公司的内部代码管理。

Gitlab 功能是能够对代码的提交审核和问题跟踪,这个对于软件工程(代码)质量的管理是至关重要的。

Gitlab分为社区版(CE)和企业版(EE)。大多数的公司还是会选择社区版。部署Gitlab是对服务器有配置要求的建议是CPU两核,内存4G以上

 

二、Gitlab的工作原理

gitlab的原理其实就是git的工作原理,GitHub也是基于git实现的

 

工作图示:

 

 

三、Gitlab的服务构成

1.Nginx:静态Web服务器
2.gitlab-shell:用于处理Git命令和修改authorized keys列表
3.gitlab-workhorse:轻量级的反向代理服务器(这个是个敏捷的反向代理,它会处理一些大的HTTP请求,比如文件的上传下载,其他的请求会反向代理给Gitlab Rails应用)
4.logrotate:日志文件管理工具
5.postgresql:数据库
6.redis:缓存数据库
7.sidekiq:用于在后台执行队列的任务
8.unicorn:Gitlab Rails应用是托管在这个服务器上面的

  

一.项目实验拓扑图 

 

二.项目实验思路及重点内容(步骤及重难知识点)

 

主机名 OS IP地址 软件 服务器配置 说明概述
gitlab-01 Centos7 10.10.10.11 gitlab 4c,4G,100G 部署gitlab服务

 

GitLab 主要目录
/var/opt/gitlab:数据目录
/opt/gitlab:  安装目录
/etc/gitlab: 配置文件目录
/etc/gitlab/gitlab.rb gitlab配置文件
/var/log/gitlab:此目录下存放了 gitlab 各个组件产生的日志
/var/opt/gitlab/backups/:备份文件生成的目录

  

 

1. gitlab下载与部署

官网:https://about.gitlab.com/
清华大学镜像站:https://mirrors.tuna.tsinghua.edu.cn/
  • 访问清华大学镜像站,找到 gitlab-ce

 

 

  • 选择yum

 

  •  选择centos对应的版本

  •  选择需要的版本

 

 2. 安装对应的依赖

yum -y install curl openssh-server openssh-clients postfix cronie policycoreutils-python

3. 启动postfix,并设置开机自启

[root@gitlab ~]# systemctl start postfix
[root@gitlab ~]# systemctl enable postfix

 

报错提示:

 

解决方法:

vi  /etc/postfix/main.cf

发现配置为:
inet_interfaces = localhost
inet_protocols = all

改成:
inet_interfaces = all
inet_protocols = all

重新启动
systemctl  start postfix 

4. 关闭防火墙或者设置对应的防火墙策略

iptables -F
setenforce 0
systemctl stop firewalld
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

 5. 安装并修改配置文件/etc/gitlab/gitlab.rb,生产环境下可以跟据需求修改

[root@gitlab ~]# rpm -ivh gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
  13 external_url 'http://192.168.200.111'

6. 重新加载配置文件

[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart
[root@gitlab ~]# netstat -lnpt | grep :80

7. 管理命令

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

8. 查看版本

[root@gitlab ~]# head -1 /opt/gitlab/version-manifest.txt

 

四、 web页面管理功能  

浏览器访问:http://ip地址

 

 

 输入用户名密码

 

案例一:调整gitlab为中文

 

 点击preferences

 

 

 

案例二:创建项目

 

 这里最好不要写中文

 

 

 

 

 

 

 

 

 

 

在gitlab的web界面创建文件

 

 

 

 

 

 项目的查看

 

案例三:将项目授权给某个用户

 

 

 

 用户这时候没有密码

 

 

 

 

设置密码

 

 这样我们使用普通用户就登录进来了

 

 

 

 

 这样xiaoli这个用户就有项目的权限了

 

案例四:客户端下载和提交代码

 

 下载:

[root@k8s-node1 ~]# git clone http://10.10.10.11/share/dmw.git            #克隆下代码
正克隆到 'dmw'...
Username for 'http://10.10.10.11': xiaoli         # 输入账号
Password for 'http://xiaoli@10.10.10.11':         # 输入密码
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
[root@k8s-node1 ~]# ls
anaconda-ks.cfg  dmw  initial-setup-ks.cfg        # 这个dmw就是克隆下来的代码目录

  

 提交:

 

 

 打开gitlab验证:

案例五:设置发邮件功能

1. 修改或者添加配置文件

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
517 gitlab_rails['smtp_enable'] = true
 518 gitlab_rails['smtp_address'] = "smtp.163.com"
 519 gitlab_rails['smtp_port'] = 25
 520 gitlab_rails['smtp_user_name'] = "lixie0215@163.com"
 521 gitlab_rails['smtp_password'] = "123456"
 522 gitlab_rails['smtp_domain'] = "163.com"
 523 gitlab_rails['smtp_authentication'] = "login"
 524 gitlab_rails['smtp_enable_starttls_auto'] = true
#修改gitlab配置的发信人
 53 gitlab_rails['gitlab_email_from'] = 'lixie0215@163.com'
677 user['git_user_email'] = "lixie0215@163.com"

2. 重新加载配置并重启服务

[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart

  

案例六:Gitlab的备份与恢复

步骤一:

停止gitlab的数据服务(禁止用户写入数据

[root@gitlab01 ~]# gitlab-ctl stop unicorn
ok: down: unicorn: 1s, normally up
[root@gitlab01 ~]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up

步骤二:

通过gitlab-rake命令备份gitlab

gitlab-rake gitlab:backup:create
gitlab-ctl start      # 备份完成后启动gitlab

 

温馨提示:

  该命令会备份gitlab仓库、数据库、用户、用户组、用户密钥、权限等信息。备份完成后备份文件会出现在/var/opt/gitlab/backups/ (会生成以下这样的文件)

 

 步骤三:

模拟gitlab服务器模拟用户及数据

假如:把以下代码模拟删除

 

 

 

 步骤四:

模拟:恢复数据

禁止写入数据:
[root@gitlab01 ~]# gitlab-ctl stop unicorn
ok: down: unicorn: 1s, normally up
[root@gitlab01 ~]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up
执行恢复命令:
gitlab-rake gitlab:backup:restore BACKUP=1632376876_2021_09_23_11.11.3        # 输入yes进行确认
gitlab-ctl start

  

验证:(数据被还原了)

 

posted @ 2021-09-20 00:00  被遗忘的记忆  阅读(1948)  评论(0编辑  收藏  举报