由于我们早期使用 phabricator
进行代码管理,但是在使用的过程当中发现和社区的 github
使用方式有些不同,所以为了让大伙都习惯 github
社区相同的使用风格,所以我们换成了 gitlab
作为公司内部的代码管理系统;并且其强大的 CI/CD 的方式为后续的持续集成工作打下基础。
Gitlab 分为 社区版 (gitlab-ce) 与 企业版 (gitlab-ee),社区版免费,企业版收费,两个版本的区别参考官方文档:gitlab-ce VS gitlab-ee;官方网站安装文档默认是针对 gitlab-ee
进行说明的,为了避免不必要的麻烦请直接安装 gitlab-ce
版本。
新版本方式 : 此文档针对大于 Gitlab 10.5 版本进行说明的,小于此版本的参考其它文档。
由于官方的方式下载软件包太慢,并且我们是专门购买的一台机器安装 gitlab
使用,再加上本人觉得直接下载软件包 *.deb
手动安装方便一些,所以我直接在清华大学开源软件源下载的包进行安装的。
注意:我这里的操作系统版本是
Ubuntu 16.04
,最后的那位博客使用的是 Centos 方式安装的,最好对照自己的操作系统方式进行博客参考。
以下通过手动方式安装的,如果希望通过添加软件源的方式添加方便后续的自动更新,可以参考: 清华大学开源文档如何添加 gitlab-ce 软件源。
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/xenial/main/g/gitlab-ce/gitlab-ce_10.7.2-ce.0_amd64.deb
dpkg -i gitlab-ce_10.7.2-ce.0_amd64.deb
打开 /etc/gitlab/gitlab.rb
文件进行基础设置,所有的核心设置均在这个文件中。
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://gitlab.xxx.com'
注意:如果没有设置以下
https
方式,则需要把地址前面换成http
。
如果想要以上的 https
方式正常生效使用,则需要把 letsencrypt
自动生成证书的配置打开,这样在执行重新让配置生效命令 (gitlab-ctl reconfigure
) 的时候会自动给域名生成免费的证书并自动在 gitlab
自带的 nginx
中加上相关的跳转配置,都是全自动的,非常方便。
注意:进行生成证书的时候请预先把域名解析设置完毕,否则会执行配置生效命令失败。
################################################################################
# Let's Encrypt integration
################################################################################
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['[email protected]'] # This should be an array of email addresses to add as contacts
很多博客及大多数的情况都推荐使用 postfix
模块进行邮件通知处理;但是我们公司已有邮箱服务器,所以 postfix
并非必须的;所以我这里采用 SMTP
的方式配置邮件服务器来实现通知效果;具体配置参考如下:
打开 /etc/gitlab/gitlab.rb
配置 SMTP 服务的具体内容如下,我这里采用的邮箱安全端口,点击打开更多配置参考。
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['gitlab_email_display_name'] = 'gitlab.notice'
gitlab_rails['gitlab_email_reply_to'] = '[email protected]'
gitlab_rails['gitlab_email_subject_suffix'] = 'gitlab'
### GitLab email server settings
###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
###! **Use smtp instead of sendmail/postfix.**
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "xxxxx"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
利用以下命令进行测试邮箱配置是否正确,测试使用方式更多参考:如何测试
gitlab-ctl console
irb(main):002:0>Notify.test_email('[email protected]', '邮件标题', '邮件正题').deliver_now
当 /etc/gitlab/gitlab.rb
配置发生改变的时候想要生效必须执行以下命令:
gitlab-ctl reconfigure
以上的操作执行完毕并且成功之后,这个时候就可以直接在浏览器中打开了。
注意:如果依然无法访问的话,请检查主机防火墙或云服务安全组中的
80
或443
端口是否正常开放,切记!切记!切记!
此篇主要只涉及安装与基础配置的部分,如果需要查看更多包括:忘记 root 密码重置、备份与恢复等;可以点击这篇博客(如何安装与使用 Gitlab)进行查看,此篇主要参考了这位作者的博客内容,并根据自己的操作进行整理,感谢这位作者的付出!
针对小于 Gitlab 10.5 的旧版本配置 HTTPS 证书