如何在Ubuntu 18.04上安装和配置GitLab
GitLab是一个使用Ruby编写的基于Web的开源Git存储库管理器,包括Wiki,问题管理,代码审查,监视以及持续集成和部署。
它使开发人员可以创建,查看和部署他们的项目。
提供了三种不同版本的GitLab,分别是Community Edition(CE),Enterprise Edition(EE)和GitLab托管的版本。
如果我们想离开GitHub,GitLab是第一选择。
它可以从包括GitHub在内的不同来源导入项目和问题,这使迁移过程轻松自如。
GitLab界面经过精心设计,简洁,直观,并且在用户体验和功能方面接近GitHub。
有几种安装GitLab的方法,具体取决于所需的用例。
本教程介绍了使用Omnibus软件包在Ubuntu 18.04系统上安装和配置GitLab(CE)所需的步骤。
准备工作
本教程假定我们具有全新的Ubuntu 18.04安装。
根据GitLab要求页面,建议使用具有以下功能的服务器:
- 至少4GB的内存内存。
- 2个CPU内核。
- 至少2GB的交换空间。
- (可选)指向服务器IP地址的域或者子域。
为了增加安全性,建议设置基本防火墙。
我们可以按照我们的《如何在Ubuntu 18.04上使用UFW设置防火墙》教程中的步骤进行操作。
在开始本教程之前,请确保我们以具有sudo特权的用户身份登录。
安装所需的依赖项
刷新本地软件包索引,并使用以下命令安装依赖项:
sudo apt updatesudo apt install curl openssh-server ca-certificates
为了使GitLab能够发送通知电子邮件,我们可以安装和使用Postfix或者使用某些事务性邮件服务,例如SendGrid,MailChimp,MailGun或者SES,在这种情况下,我们可以跳过以下步骤并配置[GitLab SMTP设置] (https://docs.gitlab.com/omnibus/settings/smtp.html)完成安装后。
运行以下命令在Ubuntu服务器上安装Postfix:
debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix
有关如何设置自己的邮件服务器的更多详细信息,请参阅本系列。
安装GitLab
GitLab安装是一个非常简单的过程。
我们将使用“ apt”软件包管理器安装GitLab CE软件包。
首先使用以下curl命令将GitLab存储库添加到系统源列表中:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
启用存储库后,通过运行以下命令安装GitLab软件包。
sudo apt install gitlab-ce
安装过程可能需要一段时间,成功安装后,我们将看到以下输出:
Thank you for installing GitLab!
调整防火墙规则
准备工作部分中链接了有关设置基本防火墙的教程。
为了能够访问GitLab界面,我们需要打开端口“ 80”和“ 443”:
sudo ufw allow OpenSSHsudo ufw allow httpsudo ufw allow https
要确保所需的端口已打开,我们可以使用以下方法检查防火墙的状态:
sudo ufw status
Status: active To Action From -- ------ --- 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
设置GitLab URL
在访问GitLab Web界面之前,我们需要设置可访问GitLab的URL。
打开Gitlab的配置文件并进行以下更改:
sudo nano /etc/gitlab/gitlab.rb
在配置文件顶部附近,我们会看到以'external_url'开头的一行。
更改值以匹配域/子域或者IP地址。
如果我们拥有域,请使用“ https”,并且如果我们想通过服务器IP地址访问GitLab接口,请使用“ http”。
/etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com'
接下来搜索“让我们进行加密集成”,取消注释以“ letsencrypt ['enable']”开头的行并将其设置为true。
(可选)如果我们希望从Let's Encrypt接收有关域的电子邮件,请取消注释以'letsencrypt ['contact_emails']'开头的行,并添加电子邮件地址。
如果我们将“ external_url”设置为IP地址,则不要启用“Let’s Encrypt ”集成。
/etc/gitlab/gitlab.rb
letsencrypt['enable'] = true letsencrypt['contact_emails'] = ['[email protected]'] # This should be an array of email addresses to add as contacts
最后,保存并关闭文件,然后运行以下命令以重新配置Gitlab:
sudo gitlab-ctl reconfigure
该命令将重新配置GitLab设置,并生成一个免费的Let's Encrypt SSL证书。
通过Web界面配置GitLab
现在,我们已经配置了GitLab URL,我们可以通过GitLab Web界面进行初始配置。
启动网络浏览器并导航至:
https://your_gitlab_domain_or_server_IP.com
1.设置管理帐户密码
首次访问网络界面时,系统会提示我们设置管理帐户的密码。
输入安全密码,完成后单击“更改密码”按钮。
我们将被重定向到登录页面:
默认的管理帐户用户名是'root'。
在本教程的后面,我们将向我们展示如何更改用户名。
- 用户名:root
- 密码:[我们设置的密码]
输入登录凭据并单击“登录”按钮后,我们将进入GitLab欢迎页面。
2.编辑用户个人资料
我们要做的第一件事是编辑用户个人资料。
单击用户头像(右上角),然后从下拉菜单中选择“设置”:
其中我们可以更改姓名,电子邮件以及其他个人资料信息和设置。
根据喜好进行更改。
完成后,单击“更新配置文件设置”按钮,不久我们将收到一封确认电子邮件,其中包含我们提供的地址。
要确认帐户,请按照电子邮件中的说明进行操作。
3.更改用户名
要访问“个人资料”页面,请点击左侧垂直导航菜单中的“帐户”链接。
如我们所知,第一个管理帐户的默认用户名是'root'。
要更改它,只需键入新用户名,然后单击“更新用户名”按钮。
在此屏幕上,我们还可以启用两因素身份验证。
下次登录GitLab仪表板时,需要输入新的用户名。
4.添加SSH密钥
为了能够将本地git更改推送到GitLab服务器,我们可以将SSH公钥添加到GitLab帐户。
如果我们已经在本地系统上创建了SSH密钥对,则可以通过键入以下内容显示公钥:
cat ~/.ssh/id_rsa.pub
输出应类似于以下内容:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]
如果上面的命令显示“没有这样的文件或者目录”,则意味着计算机上没有生成SSH密钥对。
要生成新的SSH密钥对,请使用以下命令:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
复制cat命令的输出,然后返回到GitLab的Web界面。
从左侧垂直导航菜单中单击“ SSH密钥”以访问SSH密钥配置页面。
在“密钥”文本区域中,粘贴我们先前从本地计算机复制的公共密钥,设置一个描述性标题,然后单击“添加密钥”按钮:
现在,我们无需提供GitLab帐户凭据,就可以从本地计算机推送和提取项目更改。