安装Gitlab

rpm下载地址:

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

1.安装相关依赖

yum -y install policycoreutils openssh-server openssh-clients postfifix 

2. 启动ssh服务&设置为开机启动

systemctl enable sshd && sudo systemctl start sshd 

3. 设置postfifix开机自启,并启动,postfifix支持gitlab发信功能

systemctl enable postfifix && systemctl start postfifix

4. 开放ssh以及http服务,然后重新加载防火墙列表

fifirewall-cmd --add-service=ssh --permanent 
fifirewall-cmd --add-service=http --permanent 
fifirewall-cmd --reload

如果关闭防火墙就不需要做以上配置

5.下载gitlab包,并且安装

在线下载安装包:

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x 
86_64.rpm 

安装:

rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm 

6. 修改gitlab配置

修改gitlab访问地址和端口,默认为80,我们改为82 (不需要可以不改)

vim /etc/gitlab/gitlab.rb 
```bash
external_url 'http://192.168.66.100:82'  # 地址需要改
nginx['listen_port'] = 82 

7. 重载配置及启动gitlab

gitlab-ctl reconfigure  # 时间较长 耐心等待
gitlab-ctl restart

8.添加防火墙

firewall-cmd --zone=public --add-port=80/tcp --permanent   
#--permanent #永久生效,没有此参数重启后失效 systemctl restart firewalld.service

密码

查看默认root密码

cat /etc/gitlab/initial_root_password  # 及时查看 避免过期自动清理

启用https:

vim /etc/gitlab/gitlab.rb

external_url 'https://10.10.10.63'    #启用https,默认是http
nginx['enable'] = true
nginx['redirect_http_to_https'] = true    #http重定向到https
nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"            #ssl证书路径
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"    #ssl秘钥路径

生成ssl证书和私钥: (不推荐)

mkdir /etc/gitlab/ssl

chmod 700 /etc/gitlab/ssl/ -R

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/gitlab/ssl/server.key -out /etc/gitlab/ssl/server.crt

参数说明:

● openssl:这是用于创建和管理OpenSSL证书,密钥和其他文件的基本命令行工具。
● req -x509:这指定我们要使用X.509证书签名请求(CSR)管理。“X.509”是SSL和TLS坚持用于密钥和证书管理的公钥基础结构标准。
● -nodes:这告诉OpenSSL跳过用密码保护我们的证书的选项。当服务器启动时,我们需要Apache能够读取文件,而无需用户干预。密码可以防止这种情况发生,因为每次重新启动后我们都必须输入密码。
● 第365天:此选项设置证书被视为有效的时间长度。我们在这里定了一年。
● -newkey rsa:2048:这指定我们要同时生成一个新的证书和一个新的密钥。我们没有在上一步创建签名证书所需的密钥,所以我们需要与证书一起创建证书。该rsa:2048部分告诉它做一个2048位长的RSA密钥。
● -keyout:这一行告诉OpenSSL在哪里放置我们正在创建的私有密钥文件。
● -out:这告诉OpenSSL在哪里放置我们正在创建的证书。

数据备份与迁移

Tip: 别忘了 备份 配置文件!

1.下载GitLab版本 (与恢复版本一致 /help 页面可以看到)

拷贝 /var/opt/gitlab/backups 文件夹下的文件到新服务器 (拷贝备份文件到新服务器)

迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话). 但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的7.60版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为7.60在进行备份.

2.停止服务

# 停止相关数据连接服务 
gitlab-ctl stop unicorn 
gitlab-ctl stop sidekiq 
# 从1393513186编号备份中恢复 
gitlab-rake gitlab:backup:restore BACKUP=1393513186 

启动Gitlab

 sudo gitlab-ctl start