GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。
功能:Gitlab 是一个提供代码托管、提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。
版本:GitLab 分为社区版(CE) 和企业版(EE)。
配置:建议CPU2核,内存2G以上。
1、安装GitLab所需依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
2、开放系统防火墙的HTTP和SSH访问
systemctl enable sshdsystemctl start sshdfirewall-cmd --permanent --add-service=httpsystemctl reload firewalld
3、设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
这步可能会出错,出错的内容可能如下
fatal: parameter inet_interfaces: no local interface found for ::1
此时需要修改/etc/postfix/main.cf
vim /etc/postfix/main.cf修改内容为如下inet_protocols = ipv4inet_interfaces = all
4、添加GitLab所需依赖库
vim /etc/yum.repos.d/gitlab_gitlab-ce.repo内容为:
[gitlab-ce]name=Gitlab CE Repositorybaseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=1
5、安装GitLab
yum makecacheyum install gitlab-ce
到这步gitlab已经安装完成,不过还不能使用。
6、修改gitlab配置文件指定服务器ip和自定义端口
vim /etc/gitlab/gitlab.rb找到以下内容:external_url 'http://gitlab.example.com'修改为external_url 'http://地址为自己安装服务器ip或者域名'
如果服务器上的80端口被占用则# nginx['listen_port'] = nil修改为 nginx['listen_port'] = 服务器没有被占用的端口,比如8099如果服务器上的8080端口被占用unicorn['port'] = 8080修改为unicorn['port'] = 服务器没有被占用的端口,比如8088,如果找不到unicorn['port'],可以先执行gitlab-ctl reconfigure
7、执行 gitlab-ctl reconfigure
注:6、7步骤的执行顺序可以颠倒,如果先执行7步骤,则还要修改
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
的内容,主要是改端口,如果端口已经被占用,和改访问的ip或者域名
如果在执行7步骤的时候,出现
Error executing action `create` on resource 'group[gitlab-www]'则看后边的错误提示内容,根据提示的错误内容进行操作即可。比如报错的内容可能是用户不存在,也有可能是cannot open /etc/group
8、gitlab发送邮件配置
以配置qq邮箱为例子
vim /etc/gitlab/gitlab.rb添加gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.qq.com"gitlab_rails['smtp_port'] = 465gitlab_rails['smtp_user_name'] = "你自己QQ号" gitlab_rails['smtp_password'] = "QQ授权码" gitlab_rails['smtp_domain'] = "smtp.qq.com"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = truegitlab_rails['gitlab_email_from'] = '你自己QQ号'
注:qq授权码获取如下
打开QQ邮箱-设置-账户-帐户安全-开启服务-POP3/SMTP服务-生成授权码-发个短信
配置完成后执行gitlab-ctl reconfigure 让配置生效
执行 gitlab-rails console进入控制台交互界面, 然后在控制台提示符后输入下面内容发送一封测试邮件,测试完成后exit()退出。
gitlab-rails console Notify.test_email('你要发送的邮箱', 'subjectqqq', 'content111').deliver_now
注:如果gitlab使用的nginx端口已经有修改过了,则还要进行如下配置,否则可能会出现访问gitlab相关的一些页面访问不到
vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml把port: 80修改为port: gitlab使用nginx配置的端口号,比如8099然后执行gitlab-ctl restart
第一次访问页面,会进入修改root账号登录gitlab密码页面
1、服务器修改过ssh端口的坑
解决方案:需要修改配置ssh端口
vim /etc/gitlab/gitlab.rb gitlab_rails['gitlab_shell_ssh_port'] = 你服务器的ssh端口
2、访问gitlab主业出现502
有一定的概率是unicorn['port']被占用,可以通过gitlab-ctl tail unicorn 来跟踪unicorn的状态
注:汉化之前必须得先知道当前安装的gitlab版本,下载的汉化包必须和当前gitlab的版本一致,否则覆盖后汉化会不成功,甚至可能导致原有的gitlab瘫痪
查看当前gitlab版本
[root@localhost ~]$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION11.11.3
下载汉化包,访问https://gitlab.com/xhang/gitlab
解压汉化包
[root@localhost ~]$ unzip gitlab-11-11-stable-zh.zip
查看汉化包版本
[root@localhost ~]$ cat gitlab-11-11-stable-zh/VERSION11.11.3
汉化前先进行备份,以便汉化失败后可以回滚
[root@localhost ~]$ cp -r /opt/gitlab/embedded/service/gitlab-rails{,.ori}
执行汉化
[root@localhost ~]$ cp -rf gitlab-11-11-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
汉化的过程中控制台可能会打印如下内容
cp: cannot overwrite non-directory ‘/opt/gitlab/embedded/service/gitlab-rails/log’ with directory ‘gitlab-11-11-stable-zh/log’cp: cannot overwrite non-directory ‘/opt/gitlab/embedded/service/gitlab-rails/tmp’ with directory ‘gitlab-11-11-stable-zh/tmp’
那是因为之前已经设置gitlab的root密码,所以可以忽略如上内容
重新配置gitlab并重启gitlab
gitlab-ctl reconfiguregitlab-ctl restart
打开gitlab网页,验证是否汉化成功
GitLab常用命令
gitlab-ctl start # 启动所有 gitlab 组件;gitlab-ctl stop # 停止所有 gitlab 组件;gitlab-ctl restart # 重启所有 gitlab 组件;gitlab-ctl status # 查看服务状态;vim /etc/gitlab/gitlab.rb # 修改gitlab配置文件;gitlab-ctl reconfigure # 重新编译gitlab的配置;gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;gitlab-ctl tail # 查看日志;gitlab-ctl tail nginx/gitlab_access.log
日志地址:/var/log/gitlab/ # 对应各服务的打印日志 服务地址:/var/opt/gitlab/ # 对应各服务的主目录
Linux环境搭建GitLab服务器
https://www.jianshu.com/p/b04356e014fa
邮件配置
https://docs.gitlab.com/omnibus/settings/smtp.html
gitlab汉化
https://www.jianshu.com/p/2400d9e57fd1