安装gitlab

yum install https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.5.2-ce.0.el7.x86_64.rpm

配置

vim /etc/hosts

将所在主机以及对应的ip地址写入

gitlab 部署Java 流水线 gitlab 开发流程_git

 

vim /etc/gitlab/gitlab.rb

将external_url变量的地址修改为gitlab所在地址

gitlab 部署Java 流水线 gitlab 开发流程_linux_02

 

 重新加载配置内容。

gitlab-ctl reconfigure

gitlab-ctl restart

查看日志:

# gitlab-ctl tail

建议gitlab机器内存>=4G

在web上登录界面

gitlab 部署Java 流水线 gitlab 开发流程_centos_03

 

Gitlab邮箱配置

修改配置文件

vim /etc/gitlab/gitlab.rb

gitlab 部署Java 流水线 gitlab 开发流程_centos_04

 重新加载配置

gitlab-ctl reconfigure

#测试配置是否成功

# gitlab-rails console

gitlab 部署Java 流水线 gitlab 开发流程_linux_05

 使用流程

1. 账号申请

2. 客户端安装

3. SSH key使用

4. 新建项目规则

5. 项目检出check

6. 创建分支branch

7. 代码提交Commit

8. 代码拉取Pull

9. 代码推送Push

10. 代码标签tag

11. 代码冲突解决

12. 创建忽略文件

13. Git Flow实战

创建组

gitlab 部署Java 流水线 gitlab 开发流程_git_06

 创建成员

gitlab 部署Java 流水线 gitlab 开发流程_git_07

 加入组

gitlab 部署Java 流水线 gitlab 开发流程_gitlab 部署Java 流水线_08

 客户端安装   

创建一个win10的虚拟机

安装git,安装过程略。   

 然后安装TortoiseGit。

生成SSHkey。     创建一个SSH Key,在任意文件夹下点击右键,选择 Git GUI Here。在弹出的程序中选择主菜单的【Help】→【Show SSH Key】

gitlab 部署Java 流水线 gitlab 开发流程_git_09

 如果没有Key,则点击“Generate Key”生成一个SSH Key:

Gitlab 配置SSH keys。 打开Gitlab登录自己的账户, 1.进入用户设置, 找到SSHkeys 2.点击右侧 Add SSH Key 3.输入上一步生成的key 4.点击Add key 即添加成功一个key

添加

gitlab 部署Java 流水线 gitlab 开发流程_linux_10

继续添加用户bob和tom,开发人员 

gitlab 部署Java 流水线 gitlab 开发流程_linux_11

新建项目规则     创建新项目:创建一个属于dev组的项目app1 

 

gitlab 部署Java 流水线 gitlab 开发流程_运维_12

新建项目规则     为项目创建master

gitlab 部署Java 流水线 gitlab 开发流程_gitlab 部署Java 流水线_13

新建项目规则     项目经理制定开发计划--创建里程碑

 新建项目规则     项目经理制定开发计划--分配任务

gitlab 部署Java 流水线 gitlab 开发流程_centos_14

 创建一些议题

gitlab 部署Java 流水线 gitlab 开发流程_gitlab 部署Java 流水线_15

项目检出 以tom为例: 这里只是需要把TortoiseGit设置网络里面的ssh客户端位置C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe,修改成成git安装目录下的ssh.exe即可。如果你安装过程已经选择了使用OpenSSH方式我想这里也应该不用修改了。不然拉取等操作的时候都会提示需要输入密码。 

gitlab 部署Java 流水线 gitlab 开发流程_git_16

 

项目检出 以tom为例:

gitlab 部署Java 流水线 gitlab 开发流程_git_17

 创建分支和切换分支 以tom为例:

gitlab 部署Java 流水线 gitlab 开发流程_centos_18

 

gitlab 部署Java 流水线 gitlab 开发流程_git_19

 提交

发出请求合并 以tom为例:登录gitlab

gitlab 部署Java 流水线 gitlab 开发流程_linux_20

确认请求合并 pm登录后确认合并请求 

关闭任务 pm关闭任务

拉取 tom再次开发,需要pull获取最新版本库

gitlab 部署Java 流水线 gitlab 开发流程_git_21

 

gitlab 部署Java 流水线 gitlab 开发流程_运维_22

Gitlab备份与恢复 

备份管理 配置文件中加入:

# vim /etc/gitlab/gitlab.rb

gitlab_rails['backup_path'] = '/data/backup/gitlab'

gitlab_rails['backup_keep_time'] = 604800

如果自定义备份目录需要赋予git权限

mkdir /data/backup/gitlab -p

chown -R git.git /data/backup/gitlab

重置配置:gitlab-ctl reconfigure

设定计划任务: 定时任务Crontab中加入

0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create

策略建议:本地保留三到七天,在异地备份永久保存

手动备份测试:gitlab-rake gitlab:backup:create

# ls /data/backup/gitlab/

1576053273_2019_12_11_12.5.2_gitlab_backup.tar

注意:gitlab.rb 和 gitlab-secrets.json 两个文件包含敏感信息。未被备份到备份文件中。需要手动备份

恢复管理

停止数据写入服务

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

gitlab-rake gitlab:backup:restore

BACKUP=1576053273_2019_12_11_12.5.2

# date -d @1576053273

2019年 12月 11日 星期三 16:34:33 CST

备份tar包一定要放到备份路径下。恢复是删除原有数据,恢复备份tar包中的数据。

如果是在其他服务器恢复备份,一定要记得将 gitlab.rb 和 gitlab-secrets.json 手动复制到相应路径下。