如何在Ubuntu 18.04 LTS上安装和配置Gitlab CE

时间:2020-02-23 14:38:30  来源:igfitidea点击:

Gitlab是基于Web和开源Git-Repository Manager。
它是用Ruby编写的,拥有丰富的功能,包括代码审查,监控,CI/CD(持续集成和部署),Wiki,问题跟踪以及许多其他功能。

直到2012年,Gitlab,并在麻省理工学院许可下分发了完全自由和开源软件。
2013年7月,该计划分为两个版本:Gitlab社区版(CE)和Gitlab企业版(EE)。

2014年2月,Gitlab采取了开放核心的商业模式。
正如预期的那样,Gitlab EE在CE版本中有一些不存在的高级功能。
但是,GE版本仍然积极开发并支持。

在Ubuntu 18.04 LTS上安装Gitlab CE

系统要求

  • 建议使用2核心CPU,可以支持最多500个用户

  • 至少8 GB的内存

  • 服务器上可用2GB交换

首先,在启动Gitlab安装之前更新系统存储库。 sudo apt-get update安装和配置所需的依赖项: sudo apt-get install curl openssh-server ca-certificatesGitlab需要能够向用户发送电子邮件。
因此,我们应该安装和配置电子邮件服务,如Postfix,或者我们可以使用像AWS SES,MailChimp等等外部电子邮件服务。
在此示例中,我们将使用Postfx。
安装Postfix。 sudo apt-get install postfix在Postfix安装期间,它会询问邮件服务器配置类型。
选择"Internet Site",然后单击"确定"。

然后它将提示输入"系统邮件名称"。
这应该是我们服务器的服务器主机名或者DNS名称。
其中我们使用"gitlab.theitroad.com"。
输入服务器配置的相应名称,然后按OK。

PostFix安装启动服务后: sudo systemctl start postfix在SystemBoot上启用服务: sudo systemctl enable postfix

安装gitlab.

添加Gitlab包存储库: curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash然后安装Gitlab社区版: sudo apt-get install gitlab-ce安装可能需要一些时间才能完成。
然后,我们将获得以下输出。

修改防火墙规则

允许HTTP和HTTPS: sudo ufw allow httpsudo ufw allow https检查防火墙状态,它将显示打开的端口: sudo ufw status

使用SSL配置Gitlab URL

在我们访问Gitlab之前,我们需要使用域名配置它。
但在添加此域名之前,我们需要使用所需的配置(具有服务器公共IP的记录)配置DNS服务器。
因此,请继续并修改Gitlab配置文件 sudo /etc/gitlab/gitlab.rb查找"External_URL"字段并添加域名URL.

然后寻找"letsencrypt"并取消注释该行。
将其设置为"真实"。
如果我们需要,我们也可以启用"Letsencrypt ['contact_emails']"section。
取消注释行并添加电子邮件地址。

保存并关闭文件。
在这种修改之后,我们需要重新配置Gitlab。
所以运行以下命令来做到这一点。 sudo gitlab-ctl reconfigure它将重新配置Gitlab并配置免费SSL证书。

使用Web浏览器并执行Gitlab URL并按Enter键。 https://gitlab.theitroad.com用域名替换"gitlab.theitroad.com":当我们首次浏览Gitlab Web界面时,它会向管理帐户询问新密码。
输入新密码,然后单击"更改密码"。

之后,它将重定向到登录页面。
用户名将是"root",密码将是我们已设置的密码。

登录帐户后,我们将看到"欢迎"页面。

SMTP设置

如果需要修改SMTP设置,请修改"gitlab.rb"文件。 sudo vim /etc/gitlab/gitlab.rb对于LocalHost上的SMTP,我们需要修改以下配置:

gitlab_rails['smtp_enable'] = true;
gitlab_rails['smtp_address'] = 'localhost';
gitlab_rails['smtp_port'] = 25;
gitlab_rails['smtp_domain'] = 'localhost';
gitlab_rails['smtp_tls'] = false;
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_ssl'] = false
gitlab_rails['smtp_force_ssl'] = false