如何在 Ubuntu 上安装和配置 GitLab

打印 上一主题 下一主题

主题 1041|帖子 1041|积分 3123

简介

GitLab是一个开源应用步伐,主要用于托管 Git 仓库,并提供与开发相干的附加功能(如题目跟踪)。GitLab 可由用户自己的基础架构托管,可灵活部署为开发团队的内部存储库、与用户对接的公共方式或供稿者托管自己项目的途径。
通过 GitLab 项目,你可以在自己的硬件上创建一个 GitLab 实例,只需最简单的安装机制。本篇文章将教你如何在 Ubuntu 服务器上安装和配置 GitLab 社区版。
须要准备



  • 一个聪明的大脑(本篇文章内容难度偏难,适合有基础的小伙伴食用,但爱挑战困难的小伙伴也可以试试)
  • 一台Linux服务器,GitLab硬件要求发起使用至少有以下配置的服务器:

    • CPU至少有4个核心
    • 内存至少有4GB

  • 一个指向你服务器的域名。本教程将使用your_domain作为示例,但请确保更换为你自己的域名。
如果你还没有服务器,或者已有的服务器配置不满足的发起的最低配置,那可以跟着我的步调 ,创建一台属于自己的Linux服务器,
我将会以 雨云 为例,带大家创建一台自己的云服务器,以便尝试本篇文章的内容。
注册链接: https://www.rainyun.com/NTEzMTM1_?s=blog
创建云服务器

   以下内容只是参考,详细按照自己的需求选择配置即可。
  点击“云产品”→“云服务器”→“立即购买”。

发起选择间隔你较近的地区,以低沉耽误。

选择配置,发起选择 4核4G配置的。

选择Ubuntu 22.04版本。

点击“立即购买”,并完成后续购买流程。 购买完成后,等待服务器部署完毕,进入管理面板,找到远程毗连信息。


使用PowerShell进行远程毗连:输入ssh root@你的服务器IP (比方ssh root@154.9.227.239),初次毗连需输入yes,然后回车即可登录。


到这里,我们的服务器就创建完毕,并且可以或许远程SSH访问了。
第1步 — 安装依靠项

在安装GitLab之前,必要安装它在安装过程中以及持续运行中所依靠的软件。
首先,更新当地软件包:
  1. sudo apt update
复制代码
然后通过输入此命令安装依靠项:
  1. sudo apt install ca-certificates curl openssh-server postfix tzdata perl
复制代码
你大概已经安装了一些这些软件。对于postfix安装,在提示时选择Internet Site。在下一个屏幕上,输入你的服务器域名以配置系统发送邮件的方式。
现在你已经安装了依靠项,就可以安装GitLab了。
第2步 — 安装GitLab

有了依靠项,可以开始安装GitLab。这个过程使用一个一键安装脚本来配置你的系统与GitLab仓库。
首先,进入/tmp目次:
  1. cd /tmp
复制代码
然后下载安装脚本:
  1. curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
复制代码
运行安装步伐:
  1. sudo bash /tmp/script.deb.sh
复制代码
该脚本设置你的服务器以使用GitLab维护的仓库。这使你可以使用与你用于其他系统软件包类似的包管理工具来管理GitLab。完成后,就可以使用apt安装实际的GitLab应用步伐:
  1. sudo apt install gitlab-ce
复制代码
这将在你的系统上安装须要的组件,大概必要一些时间来完成。
第3步 — 调整防火墙规则

在配置GitLab之前,必要在防火墙开启部分端口,你也可以在你购买云服务器的web管理面板中开启对应协议的端口,但在本篇博客中,会使用 ufw 来开启。
通过运行以下命令查看当前运动的防火墙状态:
  1. $ sudo ufw status
  2. # 输出
  3. Status: active
  4. To                         Action      From
  5. --                         ------      ----
  6. OpenSSH                    ALLOW       Anywhere
  7. OpenSSH (v6)               ALLOW       Anywhere (v6)
复制代码
当前规则允许SSH流量通过,但限定了对其他服务的访问。由于GitLab是一个Web应用步伐,必要允许HTTP(80)访问。因为你将使用GitLab的内置的功能申请并启用Let’s Encrypt的免费TLS/SSL证书,也允许HTTPS(443)访问。
HTTP和HTTPS的协议到端口映射在/etc/services文件中可用,因此你可以通过名称允许该流量。如果你还没有启用OpenSSH流量,你应该允许该流量:
  1. sudo ufw allow http
  2. sudo ufw allow https
  3. sudo ufw allow OpenSSH
复制代码
你可以再次检查ufw status以确保你至少授予了这两个服务的访问权限:
  1. $ sudo ufw status
  2. # 输出
  3. Status: active
  4. To                         Action      From
  5. --                         ------      ----
  6. OpenSSH                    ALLOW       Anywhere
  7. 80/tcp                     ALLOW       Anywhere
  8. 443/tcp                    ALLOW       Anywhere
  9. OpenSSH (v6)               ALLOW       Anywhere (v6)
  10. 80/tcp (v6)                ALLOW       Anywhere (v6)
  11. 443/tcp (v6)               ALLOW       Anywhere (v6)
复制代码
输出这样,就表示GitLab Web界面现在就可以访问了。
第4步 — 编辑GitLab配置文件

更新配置文件并运行重新配置命令。首先,用你喜欢的文本编辑器打开GitLab的配置文件。我这个例子使用nano:
  1. sudo nano /etc/gitlab/gitlab.rb
复制代码


  • 搜索external_url配置行。并将它的值改成你的域名,并确保将http更改为https:
  1. ...
  2. ## GitLab URL
  3. ##! URL on which GitLab will be reachable.
  4. ##! For more details on configuring external_url see:
  5. ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
  6. ##!
  7. ##! Note: During installation/upgrades, the value of the environment variable
  8. ##! EXTERNAL_URL will be used to populate/replace this value.
  9. ##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
  10. ##! address from AWS. For more details, see:
  11. ##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
  12. external_url 'https://your_domain
  13. '  #在这!!!
  14. ...
复制代码
接下来,找到letsencrypt['contact_emails']设置。如果你使用的是nano,可以通过按CTRL+W来搜索提示。
将letsencrypt['contact_emails']写入提示,然后按ENTER。
这个设置定义了Let’s Encrypt可以用来联系你的电子邮件地址列表。发起取消注释并填写,基本上是用来提醒你的域名SSL证书是否快要逾期:
  1. letsencrypt['contact_emails'] = ['you_email@gmail.com']
复制代码
修改完成后保存,可以按CTRL+X,然后Y,然后ENTER来完成。
运行以下命令重新配置GitLab:
  1. sudo gitlab-ctl reconfigure
复制代码
这是一个完全自动化的过程,所以你不必要做什么事情。该过程还将自动为你的域名配置 Let’s Encrypt 证书。
第5步 — 通过Web界面进行初始配置

GitLab运行后,你可以通过Web界面对应用步伐进行初始配置。
第一次登录

在欣赏器中输入你的的 GitLab 服务器的域名:
  1. https://your_domain
复制代码
第一次访问,会看到一个登录页面:
初次访问必要使用 root 用户登录

GitLab会天生一个初始的安全暗码。可以使用sudo用户查看改文件中的暗码:
  1. sudo nano /etc/gitlab/initial_root_password
复制代码

  1. # WARNING: This value is valid only in the following conditions
  2. #          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
  3. #          2. Password hasn't been changed manually, either via UI or via command line.
  4. #
  5. #          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.
  6. Password: YOUR_PASSWORD  # 在这里!!!
  7. # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
复制代码
回到登录页面,输入以下内容:


  • 用户名:root
  • 暗码:/etc/gitlab/initial_root_password中查看到的暗码
然后点击登录按钮,就可以看到 以下画面了:

接下来可以在管理面板中修改部分信息。
更新暗码

登录后要做的第一件事就是更改暗码。要更改暗码,请单击导航栏右上角的图标,然后选择Edit profile

然后进入用户设置页面。在左侧导航栏选择Password,将 GitLab 天生的复杂暗码更改为你自己的暗码,完成更新后点击Save password按钮:

然后必要重新登录 GitLab。

修改配置文件设置

点击导航栏右上角的用户图标,选择 Edit Profile
发起将 Full nameEmail 修改为自己的。

完成修改后,点击 Update Profile settingsGitlab 会让你验证一次暗码。
并且会根据上面填写的 Email 信息,由Gitlab官方,发送一封确认邮件,按提示完成即可。
更改账户名称

在左侧导航栏中选择 Account

可以将默认的 root 修改为你自己喜欢的用户名

点击 Update username 进行更改。
下次再登录 Gitlab 的时候,就可以使用你自己喜欢的用户明名登录即可。
为账户添加 SSH 密钥

你可以通过 Git 启用 SSH 密钥来与 GitLab 项目交互。为此,你必要在 GitLab 账户中添加 SSH 公钥。

如果已在当地计算机上创建了 SSH 密钥对,则可输入以下内容查看公钥:
  1. cat ~/.ssh/id_rsa.pub
  2. # 正确输出
  3. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 you_computer_name@mydesktop
  4. # 错误输出
  5. cat: ~/.ssh/id_rsa.pub: No such file or directory
复制代码
如果你输出了:错误输出
可以在当地运行 ssh-keygen 命令,按照提示输入信息即可:
  1. $ ssh-keygen
  2. # 输出,并按提示按 Enter 即可
  3. Generating public/private rsa key pair.
  4. Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
  5. Enter passphrase (empty for no passphrase):
  6. Enter same passphrase again:
  7. Your identification has been saved in /home/sammy/.ssh/id_rsa.
  8. Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
  9. The key fingerprint is:
  10. SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.work
  11. The key's randomart image is:
  12. +---[RSA 2048]----+
  13. |          ..%o==B|
  14. |           *.E =.|
  15. |        . ++= B  |
  16. |         ooo.o . |
  17. |      . S .o  . .|
  18. |     . + .. .   o|
  19. |      +   .o.o ..|
  20. |       o .++o .  |
  21. |        oo=+     |
  22. +----[SHA256]-----+
复制代码
完成命令后,就可以像上面一样体现公钥:
  1. cat ~/.ssh/id_rsa.pub
  2. # 输出
  3. 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,进入管理区:

从左侧导航栏中选择 Settings

你将进入 GitLab 实例的全局设置。在这里,你可以调整一系列影响新用户注册与否及其访问级别的设置。
禁用注册

如果你希望完全禁用注册,请滚动到 Sign-up Restrictions 部分并按下 Expand 查看选项。
然后取消选择 Sign-up enabled 复选框:

末了保存即可。
限定项目创建

默认情况下,新用户最多可以创建 10 个项目。如果希望允许外部新用户查看和到场,但又想限定他们创建新项目的权限,可以在 Account and Limit Settings 部分中进行限定。
可以将 Default projects limit 更改为 0,以完全禁止新用户创建项目:

保存后,新用户现在可以创建账户,但无法创建项目。
更新 Let’s Encrypt 证书

默认情况下,GitLab 会在每隔四天的晚上更新 Let’s Encrypt 证书,详细时间取决于 external_url 文件。你可以在 /etc/gitlab/gitlab.rb 文件中修改这些设置。
比方,如果你想每隔 7 天在 12:30 更新一次,你可以这样配置。
首先,使用 nano 打开配置文件:
  1. sudo nano /etc/gitlab/gitlab.rb
复制代码
然后,在文件中找到以下几行,删除 # 并更新为以下内容:
  1. ...################################################################################# Let's Encrypt integration################################################################################# letsencrypt['enable'] = nilletsencrypt['contact_emails'] = ['you_email@gmail.com']
  2. # 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 来禁用自动续订功能:
  1. ...
  2. letsencrypt['auto_renew'] = false
  3. ...
复制代码
有了自动续订功能,就无需担心 HTTPS 服务停止。
   相干链接
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTEzMTM1_?s=blog
我的博客:https://blog.ivwv.site

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表