文章目录

  • 一、下载并安装 gitlab
  • 二、修改 gitlab 配置文件并初始化 gitlab
  • 三、验证端口80是否开启,并登录 gitlab web 界面
  • 四、gitlab web 界面设置中文
  • 五、gitlab 常用命令
  • 六、关闭账号注册功能
  • 七、解决邮箱注册失败,实现事件触发
  • 八、创建账户 Users
  • 九、重新设置密码
  • 十、创建组 Groups
  • 十一、将用户添加到组
  • 十二、创建一个测试项目页面
  • 十三、git 客户端测试 clone 项目
  • 十四、客户端编辑文件并测试提交
  • 十五、Windows客户端、凭据管理
  • 十六、gitlab 使用
  • 16.1 数据保方式
  • 16.2 git 缓存区与工作区等概念
  • 16.3 常用 git 命令
  • 十七、gitlab 数据备份恢复
  • 17.1 停止 gitlab 数据服务
  • 17.2 手动备份数据
  • 17.3 查看要恢复的文件
  • 17.4 执行恢复
  • 17.5 启动服务
  • 十八、gitlab 汉化
  • 18.1 下载语言包替换
  • 18.2 通过源码汉化


一、下载并安装 gitlab

安装包下载地址:https://packages.gitlab.com/gitlab/gitlab-ce
rpm 包国内下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/
ubuntu 国内下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/

cd /apps
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/bionic/main/g/gitlab-ce/gitlab-ce_13.12.4-ce.0_amd64.deb
dpkg -i gitlab-ce_13.12.4-ce.0_amd64.deb

二、修改 gitlab 配置文件并初始化 gitlab

vim /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.31'
# 可选邮件通知设置
gitlab_rails['smtp_enable'] = true 
gitlab_rails['smtp_address'] = "smtp.qq.com" 
gitlab_rails['smtp_port'] = 465 
gitlab_rails['smtp_user_name'] = "891506240@qq.com" 
gitlab_rails['smtp_password'] = "ublihkwaxcaibebf" 
gitlab_rails['smtp_domain'] = "qq.com" 
gitlab_rails['smtp_authentication'] = :login 
gitlab_rails['smtp_enable_starttls_auto'] = true 
gitlab_rails['smtp_tls'] = true 
gitlab_rails['gitlab_email_from'] = "891506240@qq.com" 
user["git_user_email"] = "891506240@qq.com"

# 修改完配置文件要执行此操作
gitlab-ctl reconfigure

初始化完成

gitlab 本地部署 头像 gitlab部署流程_devops


gitlab 相关的目录

/etc/gitlab #配置文件目录 
/run/gitlab #运行 pid 目录 
/opt/gitlab #安装目录
/var/opt/gitlab #数据目录 
/var/log/gitlab #日志目录

三、验证端口80是否开启,并登录 gitlab web 界面

root@ubuntu1804:/apps# lsof -i:80
COMMAND   PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   47523       root    7u  IPv4 126089      0t0  TCP *:http (LISTEN)
nginx   47524 gitlab-www    7u  IPv4 126089      0t0  TCP *:http (LISTEN)
nginx   47525 gitlab-www    7u  IPv4 126089      0t0  TCP *:http (LISTEN)

user:root

passwd:12345678

gitlab 本地部署 头像 gitlab部署流程_devops_02

四、gitlab web 界面设置中文

gitlab 本地部署 头像 gitlab部署流程_gitlab 本地部署 头像_03

五、gitlab 常用命令

gitlab-ctl 服务相关命令行操作行

gitlab-ctl stop       #停止 gitlab
gitlab-ctl start      #启动 gitlab
gitlab-ctl restar     #重启 gitlab
gitlab-ctl status     #查看组件运行状态
gitlab-ctl tail nginx #查看某个组件的日志
gitlab-ctl --help     #查看帮助

gitlab-rails 用于启动控制台进行特殊操作,比如修改管理员密码、打开数据库控制台( gitlab-rails dbconsole)等

gitlab-rails dbconsole

gitlab-psql 数据库命令行

root@s1:~# gitlab-psql
gitlabhq_production=# \db

gitlab-rake 数据备份恢复等数据操作

六、关闭账号注册功能

gitlab 本地部署 头像 gitlab部署流程_devops_04

七、解决邮箱注册失败,实现事件触发

gitlab 本地部署 头像 gitlab部署流程_linux_05

gitlab 本地部署 头像 gitlab部署流程_gitlab 本地部署 头像_06


gitlab 本地部署 头像 gitlab部署流程_git_07


gitlab 本地部署 头像 gitlab部署流程_linux_08


gitlab 本地部署 头像 gitlab部署流程_linux_09

八、创建账户 Users

Users-账号,针对的是开发或者使用gitlab的用户(人员)

Groups-组、业务,针对的是公司里面的一个业务

Projects-项目、服务,针对是一个业务中的多个服务

gitlab 本地部署 头像 gitlab部署流程_gitlab 本地部署 头像_10


gitlab 本地部署 头像 gitlab部署流程_gitlab_11


此时账号还没有密码,需要登录邮箱去设置密码

或者

在gitlab的编辑上也可以更改密码

gitlab 本地部署 头像 gitlab部署流程_linux_12


user:lck

passwd:12345678

gitlab 本地部署 头像 gitlab部署流程_git_13

九、重新设置密码

gitlab 本地部署 头像 gitlab部署流程_linux_14


通过邮件重置用户密码

gitlab 本地部署 头像 gitlab部署流程_git_15

十、创建组 Groups

gitlab 本地部署 头像 gitlab部署流程_gitlab 本地部署 头像_16


gitlab 本地部署 头像 gitlab部署流程_devops_17


已成功创建组

gitlab 本地部署 头像 gitlab部署流程_git_18

十一、将用户添加到组

gitlab 本地部署 头像 gitlab部署流程_git_19


gitlab 本地部署 头像 gitlab部署流程_devops_20

十二、创建一个测试项目页面

登陆账号 laomao 密码 12345678

gitlab 本地部署 头像 gitlab部署流程_devops_21


创建一个空的project

gitlab 本地部署 头像 gitlab部署流程_git_22


填写项目路径,项目名称

gitlab 本地部署 头像 gitlab部署流程_devops_23


在Linux上输入以下命令或者点击“New file”也是可以的

gitlab 本地部署 头像 gitlab部署流程_gitlab_24


点击“New file”,创建文件名为 .gitignore

gitlab 本地部署 头像 gitlab部署流程_linux_25


再点击“New file”,创建文件名为 index.html

gitlab 本地部署 头像 gitlab部署流程_gitlab 本地部署 头像_26


gitlab 本地部署 头像 gitlab部署流程_linux_27

十三、git 客户端测试 clone 项目

gitlab 本地部署 头像 gitlab部署流程_linux_28

root@ubuntu1804:~# git config --global user.name "laomao"
root@ubuntu1804:~# git config --global user.email "laomao@qq.com"
root@ubuntu1804:~# git clone http://10.0.0.31/lcklck/app1.git

十四、客户端编辑文件并测试提交

root@ubuntu1804:~# cd app1/
root@ubuntu1804:~/app1# vim index.html
<h1>v111</h1>
<h1>v222</h1>

# 把该项目整个文件放入暂存区
root@ubuntu1804:~/app1# git add .
# 查看git状态,会提示有变更的文件
root@ubuntu1804:~/app1# git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	modified:   index.html
	
# 将文件提交到本地仓库,-m 是注释提交内容,更改了什么bug
root@ubuntu1804:~/app1# git commit -m "v2 version"
[master 1b55c84] v2 version
 1 file changed, 1 insertion(+)

# 推送到gitlab仓库
root@ubuntu1804:~/app1# git push
Username for 'http://10.0.0.31': laomao
Password for 'http://laomao@10.0.0.31':
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 290 bytes | 290.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://10.0.0.31/lcklck/app1.git
   9ac013b..1b55c84  master -> master

推送完成之后,去仓库查看文件是否变更

gitlab 本地部署 头像 gitlab部署流程_linux_29


gitlab 本地部署 头像 gitlab部署流程_git_30

十五、Windows客户端、凭据管理

URL:http://git-scm.com/
打开 git-bash 程序
第一次push文件会记住密码,保存在 控制面板—>凭据管理器—>windows凭据—> 普通凭据
如果gitlab账号密码更改,需要在凭据里面删除

十六、gitlab 使用

16.1 数据保方式

SVN 与 CVS:每次提交的文件都单独保存,即按照文件的提交时间区分不同的版本,保存至不同 的逻辑存储区域,后期恢复的时候直接基于之前版本恢复。

gitlab 本地部署 头像 gitlab部署流程_git_31


Gitlab: Gitlab 与 SVN 的数据保存方式不一样,gitlab 虽然也会在内部对数据进行逻辑划分保存,但是当后期提交的数据如果和之前提交过的数据没有变化,其就直接快照之前的 文件,而不是在将文件重新上传一份在保存一遍,这样既节省了空间又加快了代码提 交速度。

gitlab 本地部署 头像 gitlab部署流程_gitlab_32

16.2 git 缓存区与工作区等概念

工作区:clone 的代码或者开发自己编写的代码文件所在的目录,通常是代码所在的一 个服务的目录名称。

暂存区:用于存储在工作区中对代码进行修改后的文件所保存的地方,使用 git add 添 加。

本地仓库:用于提交存储在工作区和暂存区中改过的文件地方,使用 git commit 提交。

远程仓库:多个开发共同协作提交代码的仓库,即 gitlab 服务器。

gitlab 本地部署 头像 gitlab部署流程_devops_33

16.3 常用 git 命令

gitlab 本地部署 头像 gitlab部署流程_gitlab_34

git config --global user.name “name“ #设置全局用户名 
git config --global user.email xxx@xx.com #设置全局邮箱 
git config --global --list #列出用户全局设置 
git add index.html / . #添加指定文件、目录或当前目录下所有数据到暂存区 
git commit -m “11“ #提交文件到工作区 
git status #查看工作区的状态 
git push #提交代码到服务器 
git pull #获取代码到本地 
git log #查看操作日志 
vim .gitignore #定义忽略文件上传至 gitlab 
git reset --hard HEAD^^ #git 版本回滚, HEAD 为当前版本,加一个^为上一个,^^为上上一个版本
git reflog #获取每次提交的 ID,可以使用--hard 根据提交的 ID 进行版本回退 
git reset --hard 5ae4b06 #回退到指定 id 的版本
git branch #查看当前所处的分支
git checkout -b develop #创建并切换到一个新分支
git checkout develop #切换分支

十七、gitlab 数据备份恢复

17.1 停止 gitlab 数据服务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

17.2 手动备份数据

gitlab-rake gitlab:backup:create #在任意目录即可备份当前 gitlab 数据
gitlab-ctl start #备份完成后启动 gitlab

17.3 查看要恢复的文件

/var/opt/gitlab/backups/ # Gitlab 数据备份目录,需要使用命令备份的
/var/opt/gitlab/nginx/conf #nginx 配置文件
/etc/gitlab/gitlab.rb #gitlab 配置文件
/etc/gitlab/gitlab-secrets.json #key 文件

ll /var/opt/gitlab/backups/ 
total 408 
drwx------ 4 git root 4096 Jul 17 10:42 ./ 
drwxr-xr-x 20 root root 4096 Jul 17 10:11 ../ 
-rw------- 1 git git 92160 Jul 17 10:20 1563330030_2019_07_17_11.11.5_gitlab_backup.tar 
-rw------- 1 git git 92160 Jul 17 10:23 1563330216_2019_07_17_11.11.5_gitlab_backup.tar
-rw------- 1 git git 92160 Jul 17 10:30 1563330647_2019_07_17_11.11.5_gitlab_backup.tar 
-rw------- 1 git git 92160 Jul 17 10:32 1563330751_2019_07_17_11.11.5_gitlab_backup.tar

17.4 执行恢复

删除一些数据,测试能否恢复

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq #恢复数据之前停止服务
gitlab-rake gitlab:backup:restore BACKUP=备份文件名

确认恢复数据

gitlab 本地部署 头像 gitlab部署流程_gitlab 本地部署 头像_35


gitlab 本地部署 头像 gitlab部署流程_gitlab 本地部署 头像_36

17.5 启动服务

gitlab-ctl start sidekiq
gitlab-ctl start unicorn

十八、gitlab 汉化

18.1 下载语言包替换

https://gitlab.com/xhang/gitlab/-/archive/v12.3.5-zh/gitlab-v12.3.5-zh.tar.gz 
https://gitlab.com/xhang/gitlab/-/archive/v11.11.5-zh/gitlab-v11.11.5-zh.tar
https://gitlab.com/xhang/gitlab/-/archive/v11.9.8-zh/gitlab-v11.9.8-zh.tar 
https://gitlab.com/xhang/gitlab

gitlab 本地部署 头像 gitlab部署流程_gitlab_37

# 首次安装 gitlab 步骤 
vim /etc/gitlab/gitlab.rb #修改配置 
gitlab-ctl reconfigure 

# 已经安装 gitlab 步骤
gitlab-ctl stop
tar xvf gitlab-vX.Y.Z-zh.tar
cp -rp /opt/gitlab/embedded/service/gitlab-rails /opt/gitlab-rails.bak #备份源文件
cp -rf gitlab-vX.Y.Z-zh/* /opt/gitlab/embedded/service/gitlab-rails/ #替换文件
gitlab-ctl reconfigure
gitlab-ctl start

Web 界面更改语言

gitlab 本地部署 头像 gitlab部署流程_git_38

18.2 通过源码汉化

汉化包地址:https://gitlab.com/xhang/gitlab

gitlab-ctl stop 
git clone https://gitlab.com/xhang/gitlab.git 
head -1 /opt/gitlab/version-manifest.txt #查看当前 gitlab 版本 
cd gitlab 
git diff v11.9.8 v11.9.8-zh
git diff v12.3.5 v12.3.5-zh
git diff v11.9.8 v11.9.8-zh > /root/v11.9.8-zh.diff
gitlab-ctl stop 
patch -f -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /root/v11.9.8-zh.diff
gitlab-ctl reconfigure
gitlab-ctl start

v11.11.8 汉化效果

gitlab 本地部署 头像 gitlab部署流程_gitlab 本地部署 头像_39


v.12.2.8 汉化效果

gitlab 本地部署 头像 gitlab部署流程_gitlab_40


V12.3.5:汉化效果

gitlab 本地部署 头像 gitlab部署流程_devops_41