本教程默认阿里云的ECS已经创建好,并在此基础上部署GitLab环境。
GitLab官网上有个手动部署的教程,而且不同操作系统的指令也多多少少有些区别,官网教程链接如下:
https://about.gitlab.com/install/#centos-8
但官网的教程有点过于理想,完全按照这个教程来,经常会部署失败,因此我们就整理了一下部署方法,笔者用的系统是centos-8,如果是其他系统,请参考官网的部署指令进行修改。
- 安装依赖包
sudo dnf install -y curl policycoreutils openssh-server perl
- 设置SSH开机自启动并启动SSH服务
sudo systemctl enable sshd
sudo systemctl start sshd
- 打开防火墙中的HTTP和SSH服务
# Check if opening the firewall is needed with: sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
该步骤可能会遇到FirewallD is not running
的错误提示,使用下面命令开启防火墙:
systemctl start firewalld.service
- 安装Postfix开机自启动
sudo dnf install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
- 启动Postfix服务
运行命令vim /etc/postfix/main.cf
,编辑main.cf
文件,将下面两个参数进行修改:
inet_interfaces = all
inet_protocols = ipv4 // 或 all
提示:按i
键进入编辑模式,编辑完成后按:wq
保存退出。
修改完成后,执行下面指令启动服务:
sudo systemctl restart postfix
- 开启端口并设置防火墙
这一步我是直接在网页上操作的,在网络与安全中的安全组->配置规则
添加规则,按下面方式定义即可,端口号可自己设,比如8888
网上也有通过脚本设置的,但笔者并没有试过:
#开启8888端口(端口号自己设)firewall-cmd --zone=public --add-port=8888/tcp --permanent#重启防火墙systemctl restart firewalld
- 添加GitLab的软件包仓库
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
- 安装GitLab
此时需要我们进入阿里云的实例中,查看公网的IP地址:
假设IP地址是45.45.45.45,我们上面设置的端口号是8888。
sudo EXTERNAL_URL="45.45.45.45:8888" yum install -y gitlab-ee
后面的gitlab-ee表示企业版,也可以安装社区版,即gitlab-ce。
安装完成后,在浏览器地址中输入45.45.45.45:8888
,可以看到如下界面。即第一次登录的时候需要重置密码,用户名是root。
-
如果部署完成后,进入不到GitLab的页面,说明上面的部署过程有问题,再认真检查。
-
没有出现重置密码的页面,而且出现下面这个需要输入用户名和密码的页面,但由于此时我们并未设置过密码,所以肯定登不上去。
此时通过命令行进入cd /opt/gitlab/bin
目录下,执行
gitlab-rails console prodection
如果该指令提示错误,执行:
sudo gitlab-rails console -e production
如果指令正常执行的话,会出现下面的界面,并进行如下操作:
- 切换到root,输入
u = User.where(id:1).first
- 设置密码:
u.password='12345678'
- 确认密码:
u.password_confirmation='12345678'
- 保存设置:
u.save!
- 如果出现true,则表示设置成功,输入
exit
退出,回到命令行模式
此时再进入到刚刚的GitLab页面,输入用户名和密码,用户名为root,密码是我们刚刚设置的12345678,就可以登录了。
登录之后,即便是自己使用,最好也创建个单独的用户,不要直接使用root。
欢迎关注微信公众号:Quant_Times