专栏首页owentGitlab环境搭建小计

Gitlab环境搭建小计

最近给公司搭建Gitlab作源代码管理工具 满满都是坑呐。

Gitlab 开源仓库软件包官方地址: https://about.gitlab.com/

https://about.gitlab.com/downloads/ 这里有各个Linux分支的安装包,下面的说明笔记齐全,直接使用比较简单。

我的安装环境是 CentOS 7.0 x86_64 目测Gitlab包会把自己安装在 /opt/gitlab 下,然后/usr/bin/gitlab-*的几个文件软链接到/opt/gitlab/bin/gitlab-*,释放初始配置到/etc/gitlab目录 执行 gitlab-ctl reconfigure之后,在/var/opt/gitlab 下保存配置和数据

gitlab实际上里面包含了很多东西,rails、redis、nginx、ruby等,如果有自己的相应服务的话,得记得端口冲突问题。比如我一开始就有端口和unicorn的默认端口(8080)冲突

接下来要改默认配置,然后坑就来了:

  1. 首先是生成的/var/opt/gitlab里面的路径不能是软链接,我把git仓库保存路径软链接后发现push的时候报错, ! [remote rejected] master -> master (pre-receive hook declined)
  2. 其次,我替换自己的nginx服务器的时候,nginx官方提供的包并不带gitlab要求的passenger模块,所以不能直接用官方提供的方法。我是用gitlab-ctl reconfigure生成了nginx的配置以后复制到自己的nginx里去的。生成的配置在 /var/opt/gitlab/nginx/conf/gitlab-http.conf
  3. 还是nginx,我的nginx的启动账户不是gitlab的(默认是gitlab-www),所以会出现502错误。日志里内容是访问fastcgi权限不足。所以还要chmod 755 /var/opt/gitlab/gitlab-rails/sockets
  4. 上面的权限每次gitlab-ctl reconfigure后都会被重置所以每次改配置都得设置下
  5. 要改内置nginx的默认端口号的话,直接external_url配置后面加就行了,不过后果就是web页面里的http/https地址的端口号就也变了
  6. [追加建议] - 最好把各个系统的超时时间设长一点,不然项目比较大的时候创建Merge Request比较慢,比较容易超时 不能软链接这回事非常头大,开来只能用mount了,不过我没试过。我这里仅仅是把git仓库的地址用配置改掉了,其他的就暂时还放在/var/opt/gitlab里,以后有需要再改吧。

记一下我这里的配置:

# @see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
#
# Change the external_url to the address your users will type in their browser
external_url 'https://git.muyo.co'

gitlab_rails['time_zone'] = 'Asia/Shanghai'

# nginx的配置最好还是参照官方文档,现在新的配置方式出来了,更简单点。
# 我这里这么配是当初没有文档,扒代码配得nginx代理
nginx['enable'] = false
# nginx['redirect_http_to_https'] = true
web_server['external_users'] = ['nginx']

unicorn['port'] = 8081

git_data_dir "/home/repo/git/gitlib/git-data"

gitlab_rails['backup_path'] = '/home/repo/git/gitlib/backups'
gitlab_rails['backup_keep_time'] = 1296000 # 15天

# mail config
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "腾讯企业邮箱地址"
gitlab_rails['smtp_password'] = "企业邮箱密码"
gitlab_rails['smtp_domain'] = "域名(就是邮箱后缀)"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

# If your SMTP server does not like the default 'From: [email protected]' you
# # can change the 'From' with this setting.
gitlab_rails['gitlab_email_from'] = '企业邮箱地址,和上面一样'

# open platform 
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = false
gitlab_rails['block_auto_created_users'] = true
gitlab_rails['db_encoding'] = 'utf8'

# 增加超时时间
gitlab_rails['git_timeout'] = 600
gitlab_rails['satellites_timeout'] = 600
ci_unicorn['worker_timeout'] = 600
ci_nginx['keepalive_timeout'] = 600
mattermost_nginx['keepalive_timeout'] = 600

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • gitlab腾讯企业邮箱配置

    介于配置gitlab邮箱测试起来补交麻烦而且看日志还不明朗,这里记录一下成功配置好的企业邮箱方案。

    owent
  • Redis全异步(HA)Driver设计稿

    现在Redis的集群功能已经Release。但是并没有一个官方直接提供的高可用性的API可以使用。有的只有解决方案,Sentinel和Cluster。所以有必要...

    owent
  • 使用restructedtext编写xresloader文档

    离上一次写Blog过了好久啦。这次拖这么长时间主要是因为最近学习了一个新的文本标记语言 – ReStructuredText 。并且重新整理了Excel导表工具...

    owent
  • gitlab访问限制问题------Forbidden

    重启-gitlab:       gitlab-ctl restart          

    Wyc
  • 01 . GitLab简介及环境部署

    GitHub如果使用私有仓库,是需要付费的,GitLab可以在上面搭建私人的免费仓库。

    常见_youmen
  • 搭建Gitlab

    ###3、gitlab的使用 在浏览器中输入 http://192.168.60.119/ ,然后 change password: ,并使用root用户登录 ...

    Cyylog
  • docker实战(7)使用docker快速搭建gitlab私服

    下载镜像 docker pull gitlab/gitlab-ce 使用镜像 镜像中有三个目录用于保存gitlab的数据,出于安全考虑,应该使宿主机目录挂载这三...

    JKXQJ
  • 搭建GitLab版本控制系统

    1. GitLab 简介 GitLab 是一款基于 git 的开源代码仓库系统 GitLab 与著名的 GitHub 最大的区别就是: 允许我们搭建自己的 gi...

    dys
  • 企业自建GitLab代码仓库安装与基础配置使用

    描述:GitLab 是一个非常优秀的项目。这是一个开源项目,允许用户在自己的服务器上运行类似于 GitHub 的项目管理系统。

    WeiyiGeek
  • centos7安装部署gitlab服务器

    我这里使用的是centos 7 64bit,我试过centos 6也是可以的! 1. 安装依赖软件 yum -y install policycoreutils...

    用户1679793

扫码关注云+社区

领取腾讯云代金券