[git]Gitlab安装及使用
文章目录
Gitlab安装及使用
一、Gitlab的概述
1.Gitlab介绍
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。安装方法是参考GitLab在GitHub上的Wiki页面。
GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。
它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找
2.Git,GitHub与GitLab的区别
- Git是一种版本控制系统,是一种工具,用于代码的存储和版本控制。
- GitHub是一个基于Git实现的在线代码仓库,是目前全球最大的代码托管平台,可以帮助程序员之间互相交流和学习。
- GitLab是一个基于Git实现的在线代码仓库软件,你可以用GitLab自己搭建一个类似于GitHub一样的仓库,但是GitLab有完善的管理界面和权限控制,一般用于在企业、学校等内部网络搭建Git私服。
- GitHub和GiLlab两个都是基于Web的Git远程仓库,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。从代码的私有性上来看,GitLab 是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。
3.Gitlab的服务构成
Nginx:静态web服务器。 gitlab-shell:用于处理Git命令和修改authorized keys列表。(Ruby) gitlab-workhorse: 轻量级的反向代理服务器。(go)
GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。
logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。
Ruby) unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。(Ruby Web Server,主要使用Ruby编写)
二、Gitlab的安装部署
前置条件:
-
Gitlab要求服务器内存2G以上
-
Gitlab要求服务器cpu最低2核4GB,建议4核8GB
-
安装依赖软件
1 2
sudo yum install -y git vim gcc glibc-static telnet sudo yum install -y curl policycoreutiels-python openssh-server
1.方式一:rpm包安装
-
下载gitlab-ce的rpm包
-
安装rpm包
1
rpm -ivh gitlab-ce-13.6.1-ce.0.el7.x86_64.rpm
2.方式二:yum源安装
-
设置yum源
1 2 3 4 5 6 7
[root@node1 ~]# vim /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1 [root@node1 ~]# yum makecache
-
安装Gitlab
1 2 3 4 5 6
[root@node1 ~]# yum install -y gitlab-ce 可以访问"https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/"查看Gitlab-ce的版本。 安装历史版本请使用下面命令: [root@node1 ~]# yum install -y gitlab-ce-{VERSION} # 如果安装时出现gpgkey验证错误,只需在安装时明确指明不进行gpgkey验证 [root@node1 ~]# yum install -y gitlab-ce --nogpgcheck
3.方式三docker部署gitlab
1)搜索和下载gitlab镜像
|
|
2) 创建docker中的网络
|
|
3) 使用镜像创建容器,并且使重要数据外部挂载到宿主机
|
|
4.配置Gitlab
1) nginx配置(可选)
补充说明:因为编译gitlab的配置 /etc/gitlab/gitlab.rb 时会重新生成这个自定义nginx 配置,所以只要 gitlab 的配置配得好,上面的nginx其实不需要自定义的。
|
|
2) 修改密码(可选)
补充说明:界面初始化时会创建密码,管理系统也可以修改密码,这里只是补充服务器端修改的途径
|
|
3) 配置文件修改
配置文件位置 /etc/gitlab/gitlab.rb
|
|
A.gitlab基本配置
|
|
B.gitlab发送邮件配置
|
|
C.web配置
|
|
D.配置生效
当配置文件发生变化时,或者是第一次启动时,我们需要刷新配置。
|
|
注意:执行 reconfigure 命令会把gitlab的nginx组件的配置还原,导致自定义修改的端口以及域名等都没有了
4) 常用目录
|
|
5.Gitlab常用命令
|
|
6.Gitlab使用
浏览器访问: http://10.0.8.116/
1) 第一次访问需要的配置
-
Gitlab安装好后,查看密码
1 2 3 4 5 6 7 8 9 10 11 12 13
cat /etc/gitlab/initial_root_password [root@node1 /data/tools]# cat /etc/gitlab/initial_root_password # WARNING: This value is valid only in the following conditions # 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run). # 2. Password hasn't been changed manually, either via UI or via command line. # # If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password. Password: XXl+X4+SsC8nOXbXUI0l+H9oMxtFDABek++UAgqZdNc= # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours. [root@node1 /data/tools]#
-
设置超管:设置密码,管理账户为root
-
关闭用户注册功能
-
设置语言为"简体中文"
2) 新建项目
- 创建project
- 创建group
- 创建user
- 设置ssh
- 设置项目权限
- 本地代码上传
7.Gitlab备份恢复
1) 修改配置文件
|
|
2) 重启使配置生效
|
|
3) 设置定时任务
|
|
4) 备份时间的识别
|
|
5) 恢复gitlab
-
停止数据写入服务
1 2 3
# 停止数据写入服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
-
进行数据恢复并重启
1 2 3 4 5
# 进行恢复 gitlab-rake gitlab:backup:restore BACKUP=1494170842 # 这个时间戳就是刚刚备份的文件前面的时间戳 # 重启 gitlab-ctl restart
文章作者 ZhangKQ
上次更新 2022-02-10