如何在 Ubuntu 上安装和配置 GitLab
简介GitLab是一个开源应用步伐,主要用于托管 Git 仓库,并提供与开发相干的附加功能(如题目跟踪)。GitLab 可由用户自己的基础架构托管,可灵活部署为开发团队的内部存储库、与用户对接的公共方式或供稿者托管自己项目的途径。
通过 GitLab 项目,你可以在自己的硬件上创建一个 GitLab 实例,只需最简单的安装机制。本篇文章将教你如何在 Ubuntu 服务器上安装和配置 GitLab 社区版。
须要准备
[*] 一个聪明的大脑(本篇文章内容难度偏难,适合有基础的小伙伴食用,但爱挑战困难的小伙伴也可以试试)
[*] 一台Linux服务器,GitLab硬件要求发起使用至少有以下配置的服务器:
[*]CPU至少有4个核心
[*]内存至少有4GB
[*] 一个指向你服务器的域名。本教程将使用your_domain作为示例,但请确保更换为你自己的域名。
如果你还没有服务器,或者已有的服务器配置不满足的发起的最低配置,那可以跟着我的步调 ,创建一台属于自己的Linux服务器,
我将会以 雨云 为例,带大家创建一台自己的云服务器,以便尝试本篇文章的内容。
注册链接: https://www.rainyun.com/NTEzMTM1_?s=blog
创建云服务器
以下内容只是参考,详细按照自己的需求选择配置即可。
点击“云产品”→“云服务器”→“立即购买”。
https://img-blog.csdnimg.cn/img_convert/b0c496fd335ad2d438b87ff173f4c069.png
发起选择间隔你较近的地区,以低沉耽误。
https://img-blog.csdnimg.cn/img_convert/97c2eeb780b679aa858d187a59999298.png
选择配置,发起选择 4核4G配置的。
https://img-blog.csdnimg.cn/img_convert/ba6f6e12f5be117c4b949912f93c0113.png
选择Ubuntu 22.04版本。
https://img-blog.csdnimg.cn/img_convert/4673beaab37f2176209dbc540cbf8f6a.png
点击“立即购买”,并完成后续购买流程。 购买完成后,等待服务器部署完毕,进入管理面板,找到远程毗连信息。
https://img-blog.csdnimg.cn/img_convert/77b6a161e65db502ce6929139f2be235.png
https://img-blog.csdnimg.cn/img_convert/be62b4e64b05dece24fc2fb198a3c500.png
使用PowerShell进行远程毗连:输入ssh root@你的服务器IP (比方ssh root@154.9.227.239),初次毗连需输入yes,然后回车即可登录。
https://img-blog.csdnimg.cn/img_convert/7a95617f891ee281d1bffdcf341a8307.png
https://img-blog.csdnimg.cn/img_convert/afb3dfa7e5146f301eb6fb5cf8d8eb87.png
到这里,我们的服务器就创建完毕,并且可以或许远程SSH访问了。
第1步 — 安装依靠项
在安装GitLab之前,必要安装它在安装过程中以及持续运行中所依靠的软件。
首先,更新当地软件包:
sudo apt update
然后通过输入此命令安装依靠项:
sudo apt install ca-certificates curl openssh-server postfix tzdata perl
你大概已经安装了一些这些软件。对于postfix安装,在提示时选择Internet Site。在下一个屏幕上,输入你的服务器域名以配置系统发送邮件的方式。
现在你已经安装了依靠项,就可以安装GitLab了。
第2步 — 安装GitLab
有了依靠项,可以开始安装GitLab。这个过程使用一个一键安装脚本来配置你的系统与GitLab仓库。
首先,进入/tmp目次:
cd /tmp
然后下载安装脚本:
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
运行安装步伐:
sudo bash /tmp/script.deb.sh
该脚本设置你的服务器以使用GitLab维护的仓库。这使你可以使用与你用于其他系统软件包类似的包管理工具来管理GitLab。完成后,就可以使用apt安装实际的GitLab应用步伐:
sudo apt install gitlab-ce
这将在你的系统上安装须要的组件,大概必要一些时间来完成。
第3步 — 调整防火墙规则
在配置GitLab之前,必要在防火墙开启部分端口,你也可以在你购买云服务器的web管理面板中开启对应协议的端口,但在本篇博客中,会使用 ufw 来开启。
通过运行以下命令查看当前运动的防火墙状态:
$ sudo ufw status
# 输出
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
当前规则允许SSH流量通过,但限定了对其他服务的访问。由于GitLab是一个Web应用步伐,必要允许HTTP(80)访问。因为你将使用GitLab的内置的功能申请并启用Let’s Encrypt的免费TLS/SSL证书,也允许HTTPS(443)访问。
HTTP和HTTPS的协议到端口映射在/etc/services文件中可用,因此你可以通过名称允许该流量。如果你还没有启用OpenSSH流量,你应该允许该流量:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
你可以再次检查ufw status以确保你至少授予了这两个服务的访问权限:
$ sudo ufw status
# 输出
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
输出这样,就表示GitLab Web界面现在就可以访问了。
第4步 — 编辑GitLab配置文件
更新配置文件并运行重新配置命令。首先,用你喜欢的文本编辑器打开GitLab的配置文件。我这个例子使用nano:
sudo nano /etc/gitlab/gitlab.rb
[*]搜索external_url配置行。并将它的值改成你的域名,并确保将http更改为https:
...
## 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
##!
##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'https://your_domain
'#在这!!!
...
接下来,找到letsencrypt['contact_emails']设置。如果你使用的是nano,可以通过按CTRL+W来搜索提示。
将letsencrypt['contact_emails']写入提示,然后按ENTER。
这个设置定义了Let’s Encrypt可以用来联系你的电子邮件地址列表。发起取消注释并填写,基本上是用来提醒你的域名SSL证书是否快要逾期:
letsencrypt['contact_emails'] = ['you_email@gmail.com']
修改完成后保存,可以按CTRL+X,然后Y,然后ENTER来完成。
运行以下命令重新配置GitLab:
sudo gitlab-ctl reconfigure
这是一个完全自动化的过程,所以你不必要做什么事情。该过程还将自动为你的域名配置 Let’s Encrypt 证书。
第5步 — 通过Web界面进行初始配置
GitLab运行后,你可以通过Web界面对应用步伐进行初始配置。
第一次登录
在欣赏器中输入你的的 GitLab 服务器的域名:
https://your_domain
第一次访问,会看到一个登录页面:
初次访问必要使用 root 用户登录
https://img-blog.csdnimg.cn/img_convert/06f14c4bc1e6e303730d88b674ebc4e2.png
GitLab会天生一个初始的安全暗码。可以使用sudo用户查看改文件中的暗码:
sudo nano /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: YOUR_PASSWORD# 在这里!!!
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
回到登录页面,输入以下内容:
[*]用户名:root
[*]暗码:/etc/gitlab/initial_root_password中查看到的暗码
然后点击登录按钮,就可以看到 以下画面了:
https://img-blog.csdnimg.cn/img_convert/5608f1f1a9ba1570a60c963acffdbb33.png
接下来可以在管理面板中修改部分信息。
更新暗码
登录后要做的第一件事就是更改暗码。要更改暗码,请单击导航栏右上角的图标,然后选择Edit profile:
https://img-blog.csdnimg.cn/img_convert/726253f331e9426782ccc10425084071.png
然后进入用户设置页面。在左侧导航栏选择Password,将 GitLab 天生的复杂暗码更改为你自己的暗码,完成更新后点击Save password按钮:
https://img-blog.csdnimg.cn/img_convert/e9914b28435252c7c70581f1a106bf03.png
然后必要重新登录 GitLab。
https://img-blog.csdnimg.cn/img_convert/c968f4ca992d3afc62fc385b7923c5e5.png
修改配置文件设置
点击导航栏右上角的用户图标,选择 Edit Profile。
发起将 Full name 和 Email 修改为自己的。
https://img-blog.csdnimg.cn/img_convert/b5223d8a78ff0aa08a3bcd21959909e1.png
完成修改后,点击 Update Profile settings ,Gitlab 会让你验证一次暗码。
并且会根据上面填写的 Email 信息,由Gitlab官方,发送一封确认邮件,按提示完成即可。
更改账户名称
在左侧导航栏中选择 Account:
https://img-blog.csdnimg.cn/img_convert/db0bce6748b31a93870cc5c94f7c7377.png
可以将默认的 root 修改为你自己喜欢的用户名
https://img-blog.csdnimg.cn/img_convert/90cb5456c2d3c7bd3e42931760617914.png
点击 Update username 进行更改。
下次再登录 Gitlab 的时候,就可以使用你自己喜欢的用户明名登录即可。
为账户添加 SSH 密钥
你可以通过 Git 启用 SSH 密钥来与 GitLab 项目交互。为此,你必要在 GitLab 账户中添加 SSH 公钥。
https://img-blog.csdnimg.cn/img_convert/79c36fad77934788c2076bc45b731b88.png
如果已在当地计算机上创建了 SSH 密钥对,则可输入以下内容查看公钥:
cat ~/.ssh/id_rsa.pub
# 正确输出
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 you_computer_name@mydesktop
# 错误输出
cat: ~/.ssh/id_rsa.pub: No such file or directory
如果你输出了:错误输出
可以在当地运行 ssh-keygen 命令,按照提示输入信息即可:
$ ssh-keygen
# 输出,并按提示按 Enter 即可
Generating 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:
+-------+
| ..%o==B|
| *.E =.|
| . ++= B|
| ooo.o . |
| . S .o. .|
| . + .. . o|
| + .o.o ..|
| o .++o .|
| oo=+ |
+---------+
完成命令后,就可以像上面一样体现公钥:
cat ~/.ssh/id_rsa.pub
# 输出
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 you_computer_name@mydesktop
复制输出的文本并将其填写到 GitLab 实例中的 Key 文本框。
现在,你无需提供 GitLab 账户根据,就能在当地计算机上管理 GitLab 项目和仓库了。
第 6 步 - 限定或禁用公开注册
在当前的设置下,任何人都有大概在访问 GitLab 实例的登陆页面时注册一个账户。如果你想托管一个公共项目,那这大概就是你想要的效果。
但是如果你必要你自己用,或者你们团队、你们组织内部使用,那么就必要禁用公开注册了,以下内容将会教你:
首先,点击顶部导航栏的菜单,从下拉菜单中选择Admin,进入管理区:
https://img-blog.csdnimg.cn/img_convert/65b1a58cc56d6db5c40bfbbb673d5e11.png
从左侧导航栏中选择 Settings:
https://img-blog.csdnimg.cn/img_convert/3a459245c256caf6188f0e2df39d6569.png
你将进入 GitLab 实例的全局设置。在这里,你可以调整一系列影响新用户注册与否及其访问级别的设置。
禁用注册
如果你希望完全禁用注册,请滚动到 Sign-up Restrictions 部分并按下 Expand 查看选项。
然后取消选择 Sign-up enabled 复选框:
https://img-blog.csdnimg.cn/img_convert/d0e76b48c14dab607cf084372e65883e.png
末了保存即可。
限定项目创建
默认情况下,新用户最多可以创建 10 个项目。如果希望允许外部新用户查看和到场,但又想限定他们创建新项目的权限,可以在 Account and Limit Settings 部分中进行限定。
可以将 Default projects limit 更改为 0,以完全禁止新用户创建项目:
https://img-blog.csdnimg.cn/img_convert/047fffd024848c9c1581afd953907712.png
保存后,新用户现在可以创建账户,但无法创建项目。
更新 Let’s Encrypt 证书
默认情况下,GitLab 会在每隔四天的晚上更新 Let’s Encrypt 证书,详细时间取决于 external_url 文件。你可以在 /etc/gitlab/gitlab.rb 文件中修改这些设置。
比方,如果你想每隔 7 天在 12:30 更新一次,你可以这样配置。
首先,使用 nano 打开配置文件:
sudo nano /etc/gitlab/gitlab.rb
然后,在文件中找到以下几行,删除 # 并更新为以下内容:
...################################################################################# Let's Encrypt integration################################################################################# letsencrypt['enable'] = nilletsencrypt['contact_emails'] = ['you_email@gmail.com']
# This should be an array of email addresses to add as contacts# letsencrypt['group'] = 'root'# letsencrypt['key_size'] = 2048# letsencrypt['owner'] = 'root'# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'# See http://docs.gitlab.com/omnibus/settings/ssl.html#automatic-renewal for more on these settings# 以下四行内容letsencrypt['auto_renew'] = trueletsencrypt['auto_renew_hour'] = "12"letsencrypt['auto_renew_minute'] = "30"letsencrypt['auto_renew_day_of_month'] = "*/7"... 还可以通过将 letsencrypt['auto_renew'] 设置为 false 来禁用自动续订功能:
...
letsencrypt['auto_renew'] = false
...
有了自动续订功能,就无需担心 HTTPS 服务停止。
相干链接
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTEzMTM1_?s=blog
我的博客:https://blog.ivwv.site
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]