前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你在centos7上安装GitLab服务器

手把手教你在centos7上安装GitLab服务器

作者头像
lyb-geek
发布2019-07-31 15:48:42
3.7K0
发布2019-07-31 15:48:42
举报
文章被收录于专栏:Linyb极客之路

GitLab介绍

GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。

功能:Gitlab 是一个提供代码托管、提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。

版本:GitLab 分为社区版(CE) 和企业版(EE)。

配置:建议CPU2核,内存2G以上。

GitLab服务器的搭建

1、安装GitLab所需依赖

代码语言:javascript
复制
yum -y install policycoreutils openssh-server openssh-clients postfix

2、开放系统防火墙的HTTP和SSH访问

代码语言:javascript
复制
systemctl enable sshdsystemctl start sshdfirewall-cmd --permanent --add-service=httpsystemctl reload firewalld

3、设置postfix开机自启,并启动,postfix支持gitlab发信功能

代码语言:javascript
复制
systemctl enable postfix && systemctl start postfix

这步可能会出错,出错的内容可能如下

代码语言:javascript
复制
fatal: parameter inet_interfaces: no local interface found for ::1

此时需要修改/etc/postfix/main.cf

代码语言:javascript
复制
vim /etc/postfix/main.cf修改内容为如下inet_protocols = ipv4inet_interfaces = all

4、添加GitLab所需依赖库

代码语言:javascript
复制
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

代码语言:javascript
复制
yum makecacheyum install gitlab-ce

到这步gitlab已经安装完成,不过还不能使用。

6、修改gitlab配置文件指定服务器ip和自定义端口

代码语言:javascript
复制
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步骤,则还要修改

代码语言:javascript
复制
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

的内容,主要是改端口,如果端口已经被占用,和改访问的ip或者域名

如果在执行7步骤的时候,出现

代码语言:javascript
复制
Error executing action `create` on resource 'group[gitlab-www]'则看后边的错误提示内容,根据提示的错误内容进行操作即可。比如报错的内容可能是用户不存在,也有可能是cannot open /etc/group

8、gitlab发送邮件配置

以配置qq邮箱为例子

代码语言:javascript
复制
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相关的一些页面访问不到

代码语言:javascript
复制
 vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml把port: 80修改为port: gitlab使用nginx配置的端口号,比如8099然后执行gitlab-ctl restart

第一次访问页面,会进入修改root账号登录gitlab密码页面

在搭建过程中可能踩的坑

1、服务器修改过ssh端口的坑

解决方案:需要修改配置ssh端口

代码语言:javascript
复制
 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瘫痪

查看当前gitlab版本

代码语言:javascript
复制
[root@localhost ~]$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION11.11.3

下载汉化包,访问https://gitlab.com/xhang/gitlab

选择和当前gitlab版本一致的汉化包,并按自己的喜好下载包,比如下载zip包

解压汉化包

代码语言:javascript
复制
[root@localhost ~]$  unzip gitlab-11-11-stable-zh.zip

查看汉化包版本

代码语言:javascript
复制
[root@localhost ~]$ cat gitlab-11-11-stable-zh/VERSION11.11.3

汉化前先进行备份,以便汉化失败后可以回滚

代码语言:javascript
复制
[root@localhost ~]$ cp -r /opt/gitlab/embedded/service/gitlab-rails{,.ori}

执行汉化

代码语言:javascript
复制
[root@localhost ~]$ cp -rf gitlab-11-11-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/

汉化的过程中控制台可能会打印如下内容

代码语言:javascript
复制
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

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GitLab介绍
  • GitLab服务器的搭建
  • 在搭建过程中可能踩的坑
  • gitlab汉化
  • 选择和当前gitlab版本一致的汉化包,并按自己的喜好下载包,比如下载zip包
  • 常用目录
  • 参考文档
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档