

### 第1步，下载gitlab安装包

```
清华大学开源软件镜像站下载地址 ：https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gitlab官网下载地址：https://packages.gitlab.com/gitlab/gitlab-ce 

wget http://8.210.81.239/Gitlab-ce-13.0.5/gitlab-ce-13.0.5-ce.0.el7.x86_64.rpm
```

###  第2步，安装gitlab

###### (1) 使用yum安装 

```bash
yum -y install gitlab-ce-13.0.5-ce.0.el7.x86_64.rpm
yum -y install git   #安装git,这一步可以跳过
```

###### (2) 使用rmp安装（推荐）

```bash
rpm -ivh gitlab-ce-13.0.5-ce.0.el7.x86_64.rpm
### 这个会报错,提示没有安装python ###
```

安装成功会输出 一个狐狸头

### 第3步，修改对外暴露的IP及端口

###### (1)编辑gitlab配置文件

```bash
vim /etc/gitlab/gitlab.rb
```

###### (2)修改对外访问的域名或IP：

```
# 修改 external_url 'example.gitlab.com' 这一句
external_url 'http://35.220.219.47:8911'  #修改成你自己的IP或域名:端口
```

ps: 注意这里设置的端口不能被占用，默认是8080端口，如果8080已经使用，请自定义其它端口，并在防火墙设置开放范围内的端口。

###### (3)重新加载配置

```bash
gitlab-ctl reconfigure     #重新生成相关配置文件，执行此命令时间比较长
```

(4)配置gitlab开机自动启动

```bash
systemctl enable gitlab-runsvdir.service
systemctl start gitlab-runsvdir.service
# 关闭gitlab的自动启动命令：systemctl disable gitlab-runsvdir.service
```

(5)启动GitLab

```bash
systemctl stop firewalld   #关掉防火墙，要不然9091端口不能对外访问
gitlab-ctl restart         #重启gitlab
```

###### (6)输出下面信息表示启动成功：

```bash
## gitlab-ctl restart  
ok: run: alertmanager: (pid 33477) 0s
ok: run: gitaly: (pid 4334) 1s
ok: run: gitlab-exporter: (pid 4361) 0s
ok: run: gitlab-workhorse: (pid 4363) 0s
ok: run: grafana: (pid 4372) 1s
ok: run: logrotate: (pid 4388) 0s
ok: run: nginx: (pid 4396) 1s 
ok: run: node-exporter: (pid 4402) 0s
ok: run: postgres-exporter: (pid 4407) 1s
ok: run: postgresql: (pid 4421) 0s
ok: run: prometheus: (pid 4501) 0s
ok: run: puma: (pid 4514) 0s
ok: run: redis: (pid 4519) 0s
ok: run: redis-exporter: (pid 4524) 1s
ok: run: sidekiq: (pid 4531) 0s     
```



###### (7)查看 gitlab 版本

```bash
#查看版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
```

### 第4步，验证GitLab是否安装成功

浏览器地址栏输入 http://35.220.219.47:8911

```bash
http://35.220.219.47:8911
用户名：root，第一次访问gitlab需要强制更改密码
```

### 第5步，设置为简体中文

```
先登录GitLab，登录成功后，在Gitlab后台的系统设置里配置简体中文。
设置路径：Setting--Preferences--Language ，将字符集修改为简体中文。
经过这一步设置，简体中文版设置完成。

```

### 第6步，创建项目，为项目分配用户

###### (1) 创建项目

```bash
进入管理中心 >> 点击左边导航菜单的【项目】 >> 点击【新建项目】按钮 新建一个项目
然后新建一个项目 demo1.MvcOne，创建项目后会生成项目的仓库地址。
创建项目后会自动生成项目的仓库地址，进入项目详细页面可以看到仓库地址为：
```

###### (2) 创建群组和用户

```bash
创建一个群组，群组名字为： MvcOneGroup
创建一个用户，用户名字为：user1
将user1加入群组MvcOneGroup
```

###### (3) 设置用户密码

```bash
 创建好用户user1后，需要给user1用户设置密码，因为默认密码为空。
从用户管理页面，进入user1用户的编辑页面设置密码：

```

###### (4) 将用户加入群组

```bash
将user1用户加入群组MvcOneGroup，选择Developer角色级别，这个级别可以对项目进行检出与修改提交操作。
```

###### (5) 将demo1.MvcOne项目邀请用户及群组

```bash
进入demo1.MvcOne项目管理页面，点击【Manage access】按钮，邀请用户或群组。
邀请用户及群组，邀请user1用户及MvcOneGroup群组加入demo1.MvcOne项目，被邀请的单个用户及群组都有访问项目的权限。
```

###### 第7步，用git命令检出项目到本地目录

在本机先安装Git客户端，然后在本地目录右键，选择【Git Bash Here】打开 Git命令行窗口。

输入检出命令，在弹出的授权对话框中输入用名：user1  密码：12345678

```bash
git clone http://35.220.219.47:8911/root/demo1.mvcone.git
```



### gitlab访问错误Whoops, GitLab is taking too much time to respond

###### 一、异常现象：

###### **gitlab访问错误Whoops, GitLab is taking too much time to respond**

###### 二、问题定位

###### 问题定位8080端口被占用：

###### 三、解决方案

###### 解决方案01：

- ###### 将占用的8080端口的进程杀死

- ###### 或者卸载占用8080端口的软件

- ###### 修改正在占用8080端口程序的端口运行

- ###### 重新启动gitlab

###### 解决方案02

- **将external_url添加一个未被使用的端口**

```
external_url 'http://35.220.219.47:8911'
```

- 修改为没有使用的端口即可：

```
external_url 'http://35.220.219.47:8987'
```

###### 将下面这3行打开注释

######  默认注释：

```bash
unicorn['port'] = 8088
postgresql['shared_buffers'] = "256MB"
postgresql['max_connections'] = 200
```

### gitlab常用命令：

| 命令功能                   | 执行命令                                       |
| :------------------------- | :--------------------------------------------- |
| 重启配置，并启动gitlab服务 | sudo gitlab-ctl reconfigure                    |
| 启动所有 gitlab            | sudo gitlab-ctl start                          |
| 重新启动GitLab             | sudo gitlab-ctl restart                        |
| 停止所有 gitlab            | sudo gitlab-ctl stop                           |
| 查看服务状态               | sudo gitlab-ctl status                         |
| 查看Gitlab日志             | sudo gitlab-ctl tail                           |
| 修改默认的配置文件         | sudo vim /etc/gitlab/gitlab.rb                 |
| 检查gitlab                 | gitlab-rake gitlab:check SANITIZE=true --trace |



### 参考文档:

```bash
### centos 7离线安装中文版GitLab ###
参考文档:  https://www.cnblogs.com/zouhong/p/15397046.html
### gitlab访问错误Whoops, GitLab is taking too much time to respond ###
参考文档:  https://cloud.tencent.com/developer/article/1511600  
```

