在线环境预下载GitLab
- 先在本机准备一台可以连接互联网的全新CentOS7虚拟机环境,硬件配置随意
- 在虚拟机环境中依次输入如下命令
# 使用阿里云作加速
cd /etc/yum.repos.d/
mkdir bak
mv *.repo ./bak
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 添加 GitLab 镜像源并安装,建议切换国内资源加速访问
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
# 创建 gitlab-ce 的 repo,使用清华大学加速
vim /etc/yum.repos.d/gitlab_gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
# 安装 yum-plugin-downloadonly 插件
yum install -y yum-plugin-downloadonly
# 下载 gitlab-ce 相关 rpm 到指定目录
mkdir -p /tmp/repo/gitlab-ce/
yum install --downloadonly --downloaddir=/tmp/repo/gitlab-ce/ gitlab-ce
# 通过scp拷贝安装文件至内网CentOS7环境
cd /tmp/repo/gitlab-ce
scp gitlab-ce-11.4.5-ce.0.el7.x86_64.rpm root@服务器IP:/tmp/
内网环境安装GitLab
- 安装GitLab内存必须大于2GB以上,内存或swap过低会出现502错误
- 配置本地yum源
# 挂载CentOS7光盘镜像
mkdir /media/CentOS
mount /dev/cdrom /media/CentOS
# 本地yum源配置
cd /etc/yum.repos.d/
mkdir bak
mv *.repo ./bak
# 创建本地yum源文件
vi CentOS-Base.repo
[base]
name=base
baseurl=file:///media/CentOS
gpgcheck=0
enabled=1
# 重建yum源
yum makecache
# 安装依赖包
yum install -y pygpgme yum-utils
yum install -y curl policycoreutils-python openssh-server
yum install -y git
# 防火墙永久开启http
firewall-cmd --permanent --add-service=http
systemctl reload firewalld
# 安装postfix邮件服务
yum install postfix
systemctl enable postfix
systemctl start postfix
# rmp安装
cd /tmp
rpm -ivh gitlab-ce-11.4.5-ce.0.el7.x86_64.rpm
# gitlab预配置
vi /etc/gitlab/gitlab.rb
# 找到并修改external_url 'http://gitlab.example.com'
external_url 'http://服务器IP'
# gitlab邮件配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@xxx.com"
gitlab_rails['smtp_password'] = "*****"
gitlab_rails['smtp_domain'] = "xxx.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = "xxx@xxx.com"
# 自动配置gitlab
gitlab-ctl reconfigure
# 启动所有服务
gitlab-ctl start
访问GitLab并测试
- 浏览器访问 http://服务器IP, 初次访问会提示设置root账户密码
- root账户gitlab,依次访问Configure GitLab->Settings->CI/CD->取消勾选Default to Auto DevOps pipeline for all projects,取消勾选Enable shared runners for new projects
- 注册用户,并创建一个test项目
# 本地环境clone测试
git cone git@服务器ID:用户名/test.git
cd test
vi ReadME.md
git add ReadME.md
git commit -m "测试"
git push
故障排查
- 如果出现502错误,检查端口是否被占用,服务器内存是否大于2GB,然后尝试 gitlab-ctl reconfigure 重新配置gitlab
- 如果已经在gitlab上添加了公钥,git操作时还是提示需要输入密码,需要输入的是git用户的密码,而不是gitlab账户的密码,这个时候需要检查git用户是否能ssh登录服务器