GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。(跟github、gitee类似)
1. 安装依赖软件
$ yum -y install policycoreutils openssh-server openssh-clients postfix
$ firewall-cmd --permanent --add-service=http
$ systemctl reload firewalld
2.设置postfix开机自启,并启动,postfix支持gitlab发信功能
$ systemctl enable postfix && systemctl start postfix
3-1.下载gitlab安装包,然后安装
$ wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
$ rpm -i gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
3-2或添加GitLab镜像源并安装
$ 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
$ yum -y install gitlab-ce
4.修改gitlab配置文件指定服务器ip和自定义端口:
$ vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.1.x/'
## 配置邮件
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xxx@qq.com'
gitlab_rails['gitlab_email_display_name'] = 'XXX-git'...
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@qq.com"
gitlab_rails['smtp_password'] = "******"
# gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
保存退出
5.重置GitLab并汉化
$ gitlab-ctl reconfigure
$ cd /home
$ wget https://gitlab.com/xhang/gitlab/-/archive/11-11-stable-zh/gitlab-11-11-stable-zh.tar.gz
$ tar -zxvf gitlab-11-11-stable-zh.tar.gz
由于复制过多覆盖需要确认,所以把~/.bashrc进行修改
$ vi ~/.bashrc
#alias cp='cp -i'
$ source ~/.bashrc
$ cp -rf ./gitlab-11-11-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
$ gitlab-ctl reconfigure
$ gitlab-ctl start
$ netstat -tpln
打开页面:http://192.168.1.x
$ gitlab-ctl restart
第一次登陆需要设置密码
6.设置gitlab发信功能,需要注意一点:
发信系统用的默认的postfix,smtp是默认开启的,两个都启用了,两个都不会工作。
我这里设置关闭smtp,开启postfix
关闭smtp方法:
$ vim /etc/gitlab/gitlab.rb
找到#gitlab_rails['smtp_enable'] = true 改为 gitlab_rails['smtp_enable'] = false
修改后执行
$ gitlab-ctl reconfigure
参考:
https://doc.gitlab.cc/omnibus/settings/smtp.html
7.报错处理:
7.1.登录502报错
一般是权限问题,解决方法:chmod -R 755 /var/log/gitlab
如果还不行,请检查你的内存,安装使用GitLab需要至少4GB可用内存(RAM + Swap)! 由于操作系统和其他正在运行的应用也会使用内存, 所以安装GitLab前一定要注意当前服务器至少有4GB的可用内存. 少于4GB内存会出现各种诡异的问题, 而且在使用过程中也经常会出现500错误.
7.2.gitlab-ctl reconfigure
报错n itdb: could not obtain information about current user: Permission denied
Error executing action `run` on resource 'execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8]'
根据报错信息大概锁定用户的权限问题,安装gitlab-ce会自动添加用户四个用户:
gitlab-www:x:497:498::/var/opt/gitlab/nginx:/bin/false
git:x:496:497::/var/opt/gitlab:/bin/sh
gitlab-redis:x:495:496::/var/opt/gitlab/redis:/bin/nologin
gitlab-psql:x:494:495::/var/opt/gitlab/postgresql:/bin/sh
google和百度都搜索不到解决方法,既然出错提示到权限问题,那么按照这个方向去查就不会有问题,后来查了文件/etc/passwd的权限是600,给予644权限后,成功解决报错问题