Gitlab简介
GitLab 是一个开源的版本管理系统,提供了类似于 GitHub 的源代码浏览,管理缺陷和注释等功能,你可以将代码免费托管到 GitLab.com,而且不限项目数量和成员数。最吸引人的一点是,可以在自己的服务器上搭建 GitLab CE (社区免费版)版本,方便内部团队协作开发和代码管理。
最近需要用到Gitlab管理项目,所以手动搭建了一个Gitlab平台。
环境和资源准备:
- 阿里云CentOS 6.4服务器
- gitlab-ce-10.2.3-ce.0.el6.x86_64.rpm
GitLab服务构成
GitLab由以下服务构成: - nginx:静态Web服务器
- gitlab-shell:用于处理Git命令和修改authorized keys列表
- gitlab-workhorse:轻量级的反向代理服务器
- logrotate:日志文件管理工具
- postgresql:数据库
- redis:缓存数据库
- sidekiq:用于在后台执行队列任务(异步执行)
- unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
工作流程
安装
GitLab 提供了两种安装方式:源码手动编译安装和软件包管理安装。
另外阿里云提供了镜像安装,可以到控制台购买镜像。我这里选择的是软件包管理安装。
1.关闭selinux
# 修改vi /etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled ,然后重启电脑
# sestatus -v 查看selinux状态
2.开放端口HTTP 和SSH端口
sudo lokkit -s http -s ssh
3.1 使用 GitLab 提供仓库在线安装
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum install gitlab-ce
国外的 GitLab 仓库访问速度较慢,可以使用国内的站点:
curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
yum install gitlab-ce
3.2下载离线软件包安装
如果网络速度不理想,可以使用离线软件包 rpm 的方式进行安装
GitLab 官方:https://packages.gitlab.com/gitlab/gitlab-ce?filter=rpms
清华大学TUNA开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/
浙大开源镜像站:http://mirrors.lifetoy.org/gitlab-ce/yum/el6/
注意:这里各位兄台注意版本的不同,centOS6和7安装的包是不一样的,如果不对应版本的话,后面会报错。
我这里网速一般,所以采用下载软件包的方式安装,下载好 rpm 软件安装包后上传到服务器指定的目录下,通过以下命令进行安装:
rpm -ivh gitlab-ce-10.2.3-ce.0.el6.x86_64.rpm
附上卸载的命令,安装错误可以卸载干净后再重试
rpm -e --nodeps gitlab-ce-10.2.3-ce.0.el6.x86_64.rpm
4.安装完成后启动Gitlab
在启动之前,需要修改一下配置文件vim /etc/gitlab/gitlab.rb
将 external_url = 'http://git.example.com'
修改为自己的 IP 地址:external_url 'http://ip_address'
GitLab 默认使用 80 端口对外提供服务,一般情况下80 端口会被其他服务占用,所以需要更改。修改 /etc/gitlab/gitlab.rb 配置文件,修改 external_url 'http://ip_address'
为external_url 'http://ip_address:new-port'
然后执行下面的命令,对 GitLab 进行编译:
gitlab-ctl reconfigure
在提示ok:run之后就可以在浏览器用http://ip:port
访问GitLab了
第一次登陆会强制修改密码。
设置smtp发送邮件服务
通过修改/etc/gitlab/gitlab.rb来设置邮件功能
添加配置如下
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "yourname@163.com"
#注意这里填的是开启smtp的授权码,不是邮箱登录密码
gitlab_rails['smtp_password'] = "yourpassword"
gitlab_rails['smtp_domain'] = "smtp.163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
保存配置后,重新编译配置即可生效:
gitlab-ctl reconfigure
测试发送邮件功能,使用命令进入console:
gitlab-rails console
在控制台提示符后输入下面的命令 发送一封测试邮件:Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
邮箱中收到邮件:
总结
下载安装包要注意版本对应,端口要放行,另外注意端口是否被占用。
端口被占用会报502错误。