目录
一. GitLab概述
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。相比GitHub、Gitee来说,GitLab除了可以提供远程仓库访问,其还支持自行搭建/自定义GitLab服务器,从而灵活实现远程仓库控制的内部使用/私有化,一般企业、学校等团队使用较多。
二. GitLab下载与安装(Linux)
官网推荐安装步骤:https://gitlab.cn/install/
2.1 GitLab依赖环境配置
##安装相关依赖
#1.curl 网页请求工具
# policycoreutils-python gitlab必备环境(policycoreutils貌似包含policycoreutils-python)
# openssh-server ssh服务端,允许其他远程工具连接本机
# openssh-client ssh客户端,类似xshell
sudo yum install -y curl policycoreutils policycoreutils-python openssh-server openssh-clients
#2.启动ssh服务、设置为开机自启动
sudo systemctl enable sshd
sudo systemctl start sshd
#3.安装postfix 以发送邮件通知(启动postfix服务、设置为开机自启动)
sudo yum install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix
#4.开放http服务、重启防火墙(直接关闭也可以)
systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
#5.安装wget服务(用于从网页下载文件资源)
# wget指令也是访问请求网页,不过其主要是个专职的下载利器,从网页下载目录资源文件
sudo yum install -y wget
2.2 GitLab下载安装
- 配置yum源信息:配置GitLab的yum源信息(源仓库服务器地址、包校验信息等),yum在执行时会自动前往yum.repos.d源配置目录,搜索对应安装软件的yum源服务仓库信息,根据信息从服务器上下载安装软件及其对应依赖(服务器存储软件及其所有依赖信息)
- 自动安装gitlab服务:yum install
# curl指令用于发起Web请求访问(GET/POST),返回页面请求结果(网页信息、下载资源等),-sS表示只在发生错误时输出错误信息
# sudo bash表示自动执行请求的script.rpm.sh脚本,该bash脚本自动在本地配置gitlab-ce的yum源仓库信息,以后gitlab的下载、更新、升级都通过对应的yum软件仓库进行
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum -y install gitlab-ce #在线下载安装最新版(默认)gitlab-ce(社区版)
三. GitLab服务配置
3.1 编辑配置文件(url、邮件等服务)
vim /etc/gitlab/gitlab.rb #编辑gitlab配置信息
#配置信息包括external_url 等域名和端口信息(默认80端口)
gitlab-ctl reconfigure #重新初始化配置
gitlab-ctl restart #重启服务
3.2 临时初始密码
cat /etc/gitlab/initial_root_password #临时初始root密码存放位置(24h有效)
#拿到这个密码后需要尽快登录web界面进行密码修改即可/更改语言/首页定制
3.3 Gitlab相关命令与权限
gitlab-ctl stop #关闭 gitlab
gitlab-ctl start #启动 gitlab
gitlab-ctl restart #重启 gitlab
gitlab-ctl tail #查看所有的logs; 按 Ctrl-C 退出
gitlab-ctl tail gitlab-rails #拉取/var/log/gitlab下子目录的日志
gitlab-ctl tail nginx/gitlab_error.log #拉取某个指定的日志文件
gitlab-rake gitlab:check SANITIZE=true --trace #检查gitlab
systemctl restart gitlab-runsvdir #gitlab启动报warning: redis: unable to open supervise/ok: file does not exist
GitLab的配置文件:/etc/gitlab/gitlab.rb #可以自定义一些邮件服务等
日志地址:/var/log/gitlab/ #对应各服务
服务地址:/var/opt/gitlab/ #对应各服务的主目录
仓库地址:/var/opt/gitlab/git-data #记录项目仓库等提交数据
3.4 Gitlab 用户注册、管理及邮件配置
(1)邮箱配置SMTP服务
配置开启通知邮箱的SMTP服务(以QQ邮箱为例),并记录生成邮箱授权码。
(2)Gitlab配置注册服务
在Gitlab Web平台,通过管理员(Admin Area) - 设置(Setting) - 通用(General) - 注册限制 - 开启注册、确认邮件通知、管理员审批功能。
(3)配置Gitlab通知邮箱
vim /etc/gitlab/gitlab.rb #编辑gitlab配置文件
##1.配置内容
#开启smtp服务
gitlab_rails['smtp_enable'] = true
#邮箱SMTP地址
gitlab_rails['smtp_address'] = "smtp.qq.com"
#邮箱SMTP端口(SSL)
gitlab_rails['smtp_port'] = 465
#smtp用户名 - 通知邮箱
gitlab_rails['smtp_user_name'] = "example@126.com"
#smtp密码 - 邮箱授权码
gitlab_rails['smtp_password'] = "smtp_password"
#邮箱域名
gitlab_rails['smtp_domain'] = "126.com"
#授权方式
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = false
#需要与gitlab_rails['smtp_user_name'] 值一样
gitlab_rails['gitlab_email_from'] = 'example@126.com'
#发送邮件展示的发件人名称
gitlab_rails['gitlab_email_display_name'] = 'Gitlab'
##2.加载配置
gitlab-ctl reconfigure #重新加载配置
##3.测试邮箱通知
gitlab-rails console #进入rails命令窗口
Notify.test_email('xxx@xx.com','Test Title','Welcome Gitlab') #发送测试邮件
(4)新用户注册流程
- 新用户首页注册提交信息
提示:You have signed up successfully. However, we could not sign you in because your account is awaiting approval from your GitLab administrator.(注册成功但需要管理员审核和验证)
- 管理员审核用户注册申请
- 用户进行邮件确认
管理员审批完成后,用户将会收到一封确认邮件,待确认账户后即可登录成功。