帮酷LOGO
0 0 评论
文章标签:Gitlab  Ubuntu  GIT  

介绍

在本指南中,我们将介绍如何在Ubuntu服务器上安装和配置GitLab 。

前提条件

建议使用有以下功能的服务器:

2内核 4GB内存

尽管你可以通过替换一些交换空间来获得内存,但不建议使用,

你需要在服务器上配置有sudo访问权限的非root用户,设置基本防火墙来提供额外的安全层也是个不错的主意,你可以按照Ubuntu初始服务器设置指南中的步骤执行此设置。

在满足上述先决条件后,继续安装过程。

安装依赖项

由于这是在该会话中首次使用apt,因此我们需要刷新本地软件包索引,然后通过键入以下命令安装依赖项:


sudo apt-get update
sudo apt-get install ca-certificates curl openssh-server postfix

对于postfix安装,在提示时选择Internet Site ,在下一个屏幕上,输入你的服务器名或IP地址的域来配置系统发送邮件的方式。

安装GitLab

现在依赖项已经就绪,可以安装GitLab了,这是一个直接的过程,利用一个安装脚本来配置你的系统与GitLab仓库。

移动到/tmp目录,然后下载安装脚本:


cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

你还可以在这里找到脚本的托管版本 :


less /tmp/script.deb.sh


sudo bash /tmp/script.deb.sh

脚本将设置你的服务器以便使用GitLab维护的存储库,使用此工具,你可以使用与其他系统包相同的包管理工具管理GitLab ,完成这个操作后,你可以使用apt安装实际的GitLab应用程序:


sudo apt-get install gitlab-ce

这将在你的系统上安装必要的组件。

调整防火墙规则

在配置GitLab之前,你需要确保防火墙规则足够宽松,允许网络流量,

键入以下命令查看活动防火墙的当前状态:


sudo ufw status


OutputStatus: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere 
OpenSSH (v6) ALLOW Anywhere (v6)

可以看到,当前的规则允许SSH通信,但是对其他服务的访问受到限制,由于GitLab是一个web应用程序,所以,应该允许在,如果你有与GitLab服务器关联的域名,GitLab也可以请求,并且启用let'的Encrypt项目中的自由tls/ssl证书来安装,我们也希望在这种情况下允许HTTPS访问。

由于HTTP和HTTPS的端口映射协议可以在/etc/services文件中使用,因此可以使用名称来允许通信,如果你还没有启用tmodel通信,你应该允许该流量现在也是如此:


sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

如果再次检查ufw status命令,则应看到至少配置了这两个服务的访问权限:


sudo ufw status


OutputStatus: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere 
80 ALLOW Anywhere 
443 ALLOW Anywhere 
OpenSSH (v6) ALLOW Anywhere (v6) 
80 (v6) ALLOW Anywhere (v6) 
443 (v6) ALLOW Anywhere (v6)

以上输出表明GitLab网页接口将在我们配置应用程序后可以被访问。

编辑GitLab配置文件

必须先更新一个配置文件,并运行重新配置命令,才能使用该应用程序,首先,打开Gitlab文件的配置:


sudo nano /etc/gitlab/gitlab.rb

靠近顶部是external_url配置,更新它以匹配你自己的域或IP地址,

/etc/gitlab/gitlab.rb

# If your GitLab server does not have a domain name, you will need to use an IP
# address instead of a domain and keep the protocol as `http`.
external_url 'https://yourdomain'

接下来,如果GitLab服务器有域名,请在文件中搜索letsencrypt['enable']设置,取消注释该行并将它设置为true ,这将告诉GitLab为GitLab域名请求let's Encrypt证书,并配置应用程序以便为它服务。

在下面,查找letsencrypt['contact_emails']设置,此设置定义了let's Encrypt项目可以用来联系你的电子邮件地址列表,如果你的域名有问题,取消注释,并且填写此消息是一个好主意,这样你就可以知道问题出在哪个域名:

/etc/gitlab/gitlab.rb

letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['sammy@yourdomain.com']

保存并关闭文件,现在,运行以下命令重新配置Gitlab :


sudo gitlab-ctl reconfigure

它可以找到的关于你的服务器的信息初始化GitLab ,这是一个完全自动化的进程,所以,你不需要回答提示,如果启用let's Encrypt集成,应该为你的域配置一个证书。

通过网络界面执行初始配置

第一次登录

访问你的GitLab服务器在你的网络浏览器中的域名:


http://gitlab_domain_or_IP

如果启用let's Encrypt,并且在external_url中使用https,则应将它重定向到安全的HTTPS连接。

首次访问时,你应该看到设置管理帐户密码的初始提示。

在初始密码提示中,为管理帐户提供,并且确认安全密码,完成后单击更改密码按钮。

你将被重定向到常规的GitLab登录页面:

在这里,你可以使用刚才设置的密码登录,凭据包括:

用户名:root 密码:[the password you set ]

将这些值输入到现有用户的字段中,然后单击登录按钮,你将登录到应用程序,并进入一个提示你开始添加项目的目标页面:

你现在可以做一些简单的更改,把GitLab设置成你想要的方式。

调整配置文件设置

要进行必要的修改,请单击界面右上角的用户图标,在出现的下拉菜单中,选择Settings,

你将被带到设置的配置文件部分:

完成后,单击底部的更新配置文件设置按钮:

将向你提供的地址发送确认邮件,按照电子邮件中的说明确认你的帐户,以便你可以开始使用GitLab 。

更改你的帐户名称

接下来,单击左侧菜单栏中的Account 项:

在这里,你可以找到你的私有API token或配置两步认证,

默认情况下,第一个管理帐户的名称为root ,由于这是已知的帐户名,因此更安全地更改它的名称,你仍然拥有管理权限; 唯一能改变的就是名字:

点击更新用户名按钮进行更改:

下次登录GitLab时,请记住使用你的新用户名。

在你的帐户中添加SSH密钥

在大多数情况下,你需要使用SSH和GitLab来与项目交互,为此,你需要将你的SSH公钥添加到GitLab帐户中。

如果你已经在本地计算机上创建了SSH密钥对,则通常可以通过键入以下命令查看公钥:


cat ~/.ssh/id_rsa.pub

你应该看到一个很大的文本块,如下所示:


Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

复制此文本,并且返回到GitLab界面中的Profile设置Settings页。

如果你的计算机上还没有一个SSH密钥对,你可以获得一条消息:


Outputcat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

如果是这种情况,你可以通过键入以下命令创建一个SSH密钥对:


ssh-keygen

接受默认值,并且可选择提供密码以在本地保护密钥:


OutputGenerating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.work
The key's randomart image is:
+---[RSA 2048]----+
| ..%o==B|
| *.E =.|
| . ++= B |
| ooo.o . |
| . S .o . .|
| . + .. . o|
| + .o.o ..|
| o .++o . |
| oo=+ |
+----[SHA256]-----+

完成这个操作后,可以通过键入以下命令来显示你的公钥:


cat ~/.ssh/id_rsa.pub


Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

复制显示的文本块,并在GitLab界面的网页中返回到你的配置文件设置。

单击左侧菜单中的SSH Keys项:

从本地计算机复制你复制的公钥,给它一个描述性的标题,然后点击Add key按钮:

现在你应该能够从本地计算机管理GitLab项目和存储库,而不必提供GitLab帐户凭据。

限制或禁用公共签名ups (可选)

你可能已经注意到,当你访问实例页面的GitLab登陆时,谁都可以注册一个帐户,这可能是你想要管理公共项目时所需要的,然而,许多时候需要更严格的设置。

首先,通过点击页面顶部主菜单栏中的扳手图标,进入管理区域:

在下面的页面中,你可以看到你的GitLab实例的总体概述,要调整设置,请单击左变菜单底部的Settings项。

你将被带到GitLab实例的全局设置,在这里,你可以调整一些影响新用户注册和访问级别的设置。

禁止注册

如果你希望完全禁用注册(你仍然可以为新用户手动创建帐户),请向下滚动到Sign-up Restrictions部分。

取消选中已启用的Sign-up复选框:

向下滚动到底部,然后单击Save按钮:

现在应该从GitLab登陆页面中删除注册部分。

按域名限制注册

如果使用GITLAB作为提供与域相关联的电子邮件地址的组织的一部分,则可以通过域来限制注册,而不是完全禁用它们。

在签署限制部分,首先选择发送确认电子邮件,只允许用户在确认邮件后,登录。

接下来,将域名域或域添加到白名单域,以进行签名,每行一个,你可以使用通配符"*"来指定通配符域:

向下滚动到底部,然后单击保存按钮:

现在应该从GitLab登陆页面中删除注册部分。

限制项目创建

默认情况下,新用户最多可以创建10个项目,如果希望允许新用户从外部进行可见性和参与,但是希望限制创建新项目。

内部,你可以将默认项目限制更改为0,以完全禁止新用户创建项目:

新用户仍然可以手动添加到项目中,并且可以访问由其他用户创建的内部或公共项目。

向下滚动到底部,然后单击保存按钮:

新用户现在可以创建帐户,但不能创建项目。

创建用于自动更新let's Encrypt证书的Cron作业

根据设计,Let's Encrypt证书的有效期只有90天,如果你早先为你的GitLab域启用了let's Encrypt,则需要确保你的证书可以定期更新,以避免服务中断,GitLab提供gitlab-ctl renew-le-certs命令来在到期时请求新的证书。

为了自动化这个进程,我们可以创建一个cron作业,以便定期自动运行这个命令,命令仅在证书即将过期时才续订证书,因此我们可以定期运行它。

要开始,在文本编辑器中创建,并且打开/etc/cron.daily/gitlab-le文件:


sudo nano /etc/cron.daily/gitlab-le

在内部,粘贴以下脚本:

/etc/cron. daily/gitlab-le

#!/bin/bash

set -e

/usr/bin/gitlab-ctl renew-le-certs > /dev/null

完成后保存并关闭文件。

键入以下命令将该文件标记为可执行文件:


sudo chmod +x /etc/cron.daily/gitlab-le

现在,GitLab应该每天自动检查,如果let's Encrypt证书需要更新,就会自动更新,如果成功,该命令将自动续订证书。

结束语

你现在应该在自己的服务器上拥有一个工作的GitLab实例,你可以开始导入或创建新项目,并为你的团队配置适当的访问级别。



文章标签:GIT  Ubuntu  Gitlab  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语