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 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

史上最全 Linux 下各文件夹的结构说明及用途介绍

运维行业正在变革,推荐阅读:30万年薪Linux运维工程师成长魔法 linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令。 /dev:设备特殊...

462110
来自专栏码神联盟

分布式服务集群下实现session共享解决方案

随着互联网的日益壮大,网站的pv和uv成线性或者指数倍的增加.单服务器单数据库早已经不能满足实际需求。目前大多数大型网站的服务器都采用了分布式服务集群...

58980
来自专栏difcareer的技术笔记

Android boot.img的解包/修改/重打包

最近研究对了Android的boot.img的操作,将一些繁琐的东西整理了一下,发到了github:https://github.com/difcareer/B...

47650
来自专栏王小雷

Firefox离线安装扩展教程

Firefox离线安装扩展教程 解决问题博文:解决stackoverflow打开慢不能注册登录 应网友求助在上传了需要的扩展资源后,顺便写个离线安装方法,其实...

26060
来自专栏IT技术精选文摘

从构建分布式秒杀系统聊聊分布式锁

最近懒成一坨屎,学不动系列一波接一波,大多还都是底层原理相关的。上周末抽时间重读了周志明大湿的 JVM 高效并发部分,每读一遍都有不同的感悟。路漫漫,借此,把前...

12530
来自专栏云计算教程系列

如何在Ubuntu 14.04上安装VestaCP并设置网站

Vesta控制面板是一个免费的开源网站控制面板,内置网站,电子邮件,数据库和DNS功能。在本教程结束时,我们将在Ubuntu 14.04上安装并运行Vesta,...

19510
来自专栏程序员宝库

Linux 下各文件夹的结构说明及用途介绍

linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令。 /dev:设备特殊文件。 /etc:系统管理和配置文件。 /etc/rc.d:启动的配...

467120
来自专栏林德熙的博客

Roslyn 通过 nuget 统一管理信息

在日常的开发中,如果需要发布多个库,多个库之间的版权和作者等信息都是相同的。如果需要每次更改信息都打开项目进行编辑,这个效率是很低的。本文提供一个方式,通过安装...

10620
来自专栏杨建荣的学习笔记

数据库巡检参考项(r7笔记第95天)

是否为归档模式 数据库是否为归档模式,可以使用archivelog list查看 是否为force logging模式 数据库是否启用了force logg...

304100
来自专栏破晓之歌

15款Django开发常用软件包 原

1. Python social auth 一款社交账号认证/注册机制,支持Django、Flask、Webpy等在内的多个开发框架,提供了约50多个服...

8520

扫码关注云+社区

领取腾讯云代金券