一、硬件要求

内存4g,磁盘80g

二、安装

本次安装采用离线安装包方式(但仍需要网络来下载部分依赖),直接安装在服务器上,后续再尝试Docker方式部署。

1. 上传离线安装包

image.png
例如上传到服务器目录:/opt/module

2. 编写安装脚本

注意:脚本中的EXTERNAL_URL是提供给外部浏览器访问的地址,默认为80端口,也会成为克隆项目时的主机名部分,可以自己根据ip/域名进行配置,也可以在后续配置中修改。

  1. # 创建并编辑脚本文件命令
  2. vim gitlab-install.sh
  3. # 脚本文件内容
  4. sudo rpm -ivh /opt/module/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm
  5. sudo yum install -y curl policycoreutils-python openssh-server cronie
  6. sudo lokkit -s http -s ssh
  7. sudo yum install -y postfix
  8. sudo service postfix start
  9. sudo chkconfig postfix on
  10. curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
  11. sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ce

给脚本增加执行权限chmod +x gitlab-install.sh

  1. [root@gitlab-server module]# chmod +x gitlab-install.sh
  2. [root@gitlab-server module]# ll
  3. 总用量 403104
  4. -rw-r--r--. 1 root root 412774002 4 7 15:47 gitlab-ce-13.10.2-
  5. ce.0.el7.x86_64.rpm
  6. -rwxr-xr-x. 1 root root 416 4 7 15:49 gitlab-install.sh

然后执行该脚本./gitlab-install.sh,开始安装 gitlab-ce。注意一定要保证服务器可以上网:

  1. [root@gitlab-server module]# ./gitlab-install.sh
  2. 警告:/opt/module/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm: V4
  3. RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY
  4. 准备中... #################################
  5. [100%]
  6. 正在升级/安装...
  7. 1:gitlab-ce-13.10.2-ce.0.el7
  8. ################################# [100%]

3. 初始化GitLab服务

使用命令gitlab-ctl reconfigure初始化:

  1. [root@gitlab-server module]# gitlab-ctl reconfigure
  2. Running handlers:
  3. Running handlers complete
  4. Chef Client finished, 425/608 resources updated in 03 minutes 08
  5. seconds
  6. gitlab Reconfigured!

4. 启动或停止GitLab服务

执行命令gitlab-ctl start启动 GitLab 服务,如需停止,执行 gitlab-ctl stop

  1. [root@gitlab-server module]# gitlab-ctl start
  2. ok: run: alertmanager: (pid 6812) 134s
  3. ok: run: gitaly: (pid 6740) 135s
  4. ok: run: gitlab-monitor: (pid 6765) 135s
  5. ok: run: gitlab-workhorse: (pid 6722) 136s
  6. ok: run: logrotate: (pid 5994) 197s
  7. ok: run: nginx: (pid 5930) 203s
  8. ok: run: node-exporter: (pid 6234) 185s
  9. ok: run: postgres-exporter: (pid 6834) 133s
  10. ok: run: postgresql: (pid 5456) 257s
  11. ok: run: prometheus: (pid 6777) 134s
  12. ok: run: redis: (pid 5327) 263s
  13. ok: run: redis-exporter: (pid 6391) 173s
  14. ok: run: sidekiq: (pid 5797) 215s
  15. ok: run: unicorn: (pid 5728) 221s

5. 使用浏览器访问 GitLab

使用主机名或者 IP 地址即可访问 GitLab 服务。若使用域名方式且域名非真实拥有且解析至目标ip的,则需要提前配一下 windows 的 hosts 文件。
GitLab默认的端口号为80,可以直接使用ip地址或主机名进行访问,若没有关闭防火墙,则需要手动开放80端口,否则无法访问。

首次登陆之前,需要修改下 GitLab 提供的 root 账户的密码,要求 8 位以上,包含大小写子母和特殊符号。

image.png
然后使用修改后的密码登录 GitLab。
image.png

三、配置

1. 配置克隆项目路径

通过修改目录/etc/gitlab中的配置文件gitlab.rb

  1. external_url 'http://192.168.234.129:9091'

image.png
编辑完成后,重置GitLab配置:

  1. gitlab-ctl reconfigure

此处是因为编写安装脚本时,EXTERNAL_URL部分使用的标识不正确导致的:
image.png

异常的克隆项目路径:
image.png

更改后:
image.png

2. 配置端口

PS:

  1. - vi模式,快速搜索内容,可以在命令模式下使用`/`后跟搜索内容即可。
  2. - 搜索完成后,可以在命令模式下输入`:noh`取消高亮。

2.1 Web界面访问端口

默认GitLab会占用80端口,所以我们可能会需要修改GitLab的端口,可以通过修改目录/etc/gitlab中的配置文件gitlab.rb,添加/修改如下配置:

  1. nginx['listen_port'] = 9091

但,测试出另一种修改方式:
使用external_url来指定端口,可以同时更改克隆路径的端口以及web端访问的端口(推荐)。

  1. external_url 'http://192.168.234.129:9091'

注意:方式一仍然可以通过80端口的url来克隆项目,而方式二则只能通过指定端口克隆,目前觉得方式二更合适一些,测试了公司的GitLab,更符合方式二配置的风格,80端口不能克隆项目。

如图:
方式一:
image.png
方式二:
image.png
更新后:
image.png

2.2 unicorn端口

同时,默认情况下unicorn会占用8080端口,所以可能也需要修改此端口,修改目录/etc/gitlab中的配置文件gitlab.rb,根据实际情况选择是否更改:

  1. unicorn['port'] = 9092

如图:
image.png

2.3 SSH端口

默认SSH占用22端口,修改目录/etc/gitlab中的配置文件gitlab.rb,根据实际情况选择是否修改:

  1. gitlab_rails['gitlab_shell_ssh_port'] = 9093

如图:
image.png
更新后:
image.png