前言
做持续集成的时候,用到了Gitlab,查看了一下相关教程并记录了一下。
本文基于CentOs8系统。
安装的服务器至少需要有2G的内存剩余容量。
一、GitLab是什么?
Gitlab是一个版本管理工具,区别于GitHub,它支持本地服务器的安装与部署。
二、安装步骤
1.安装依赖的软件、打开系统的HTTP、HTTPS、SSH服务
- 在CentOS 8(或RedHat 8)上,以下命令还将在系统防火墙中打开HTTP、HTTPS和SSH访问。这是一个可选步骤,如果只想从本地网络访问GitLab,可以跳过它。
#安装gitlab依赖的软件
sudo dnf install -y curl policycoreutils openssh-server perl
# 启用远程SSH服务
sudo systemctl enable sshd
sudo systemctl start sshd
# 设置防火墙,打开HTTP、HTTPS服务,可能需要先检查防火墙服务是否
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
- 在命令防火墙打开HTTP和HTTPS服务的时候,有可能防火墙都没有打开,出现以下问题:
打开防火墙,再执行打开防火墙的HTTP与HTTPS服务即可。
sudo systemctl status firewalld #查看防火墙状态inactive
sudo systemctl start firewalld #启用防火墙服务
sudo systemctl status firewalld #查看防火墙状态active
- 接下来,安装Postfix以发送通知电子邮件。如果要使用其他解决方案发送电子邮件,请跳过此步骤,并在安装GitLab后配置外部SMTP服务器。
#安装并启用postfix
sudo dnf install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
2.安装gitlab
本步骤采用的是社区版本,如果需要安装ee版相应的ce改成ee即可。
# 配置gitlab-ce的yum repo
curl https://packeages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh|sudo bash
# 在线安装gitlab-ce
yum install -y gitlab-ce
3.配置gitlab
- 修改配置文件
vim /etc/gitlab/gitlab.rb
external_url 'http://114.115.248.55:7000'#个人体会只有这一句是必改的,端口可以自定,默认80可能会产生端口冲突
......
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_from'] = 'xxxxxx@qq.com'
......
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxxxx@qq.com"
gitlab_rails['smtp_password'] = "111111" # 客户端授权密码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
......
user["git_user_email"] = "xxxxxx@qq.com"
- 让配置生效,启动服务
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
- 执行reconfigure过程中如果内存不够,会报
ruby_block[authorize Grafana with GitLab] action run错误,简单粗暴的做法就是扩大云服务器的内存,如果实在差钱就启用虚拟内存,做法如下:
dd if=/dev/zero of=/data/swap bs=512 count=8388616 #of路径是自己建的在data目录下的一个swap文件
mkswap /data/swap
swapon /data/swap
#以上就建立了一块外存,作为内存不够时候的交换区
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab #开机自启
cat /proc/swaps#查看交换区是不是建好了,使用情况
做好了内存交换区之后,在进行reconfigure指令。
4.登录
- 访问配置的external_url:
- 如果出现无法载入网页的情况:
可以先ping一下,看看是不是能到达。
这个不能到通常是因为云服务器的安全组策略禁止了部分IP和端口的访问,这个具体看你使用的是哪家的服务器,具体不详述了。
另外也查看一下你访问的端口是不是被防火墙挡住了。
firewall-cmd --query-port=7000/tcp
firewall-cmd --add-port=7000/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=7000/tcp
- Username填root,Password去以下位置找,登录即可。
cat /etc/gitlab/initial_root_password
总结
这样gitlab就算安装好了,之后可能会出一些关于使用配置CI/CD的总结文章。