Ubuntu20.04安装配置GitLab的⽅法步骤
介绍
或Community Edition是⼀个开源应⽤程序,主要⽤于托管Git存储库,以及其他与开发相关的功能,如问题跟踪。它旨在使⽤您⾃⼰的基础架构进⾏托管,并为您的开发团队提供部署内部存储库的灵活性,与⽤户交互的公共⽅式,或者为贡献者提供托管⾃⼰项⽬的⽅法。
GitLab项⽬使⽤简单的安装机制在您⾃⼰的硬件上设置GitLab实例变得相对简单。在本指南中,我们将介绍如何在阿⾥云Ubuntu 20.04服务器上安装和配置GitLab。
前提条件
部署GitLab的实例要求⾄少使⽤2个vCPU和4GiB的内存,本⽰例中使⽤的相关资源版本如下。
实例规格:ECS共享型 s6 2核4G1M带宽
操作系统:Ubuntu 20.04
已添加如下表所⽰的安全组规则。
⽅向协议/应⽤端⼝/范围源地址
⼊⽅向HTTP(80)800.0.0.0/0
安装
第1步 - 安装依赖项
在我们⾃⼰安装GitLab之前,安装⼀些在安装过程中持续使⽤的软件⾮常重要。幸运的是,可以从Ubuntu的默认包存储库轻松安装所有必需的软件。
由于这是我们第⼀次apt在此会话期间使⽤,我们可以刷新本地包索引,然后键⼊以下内容来安装依赖项:
sudo apt update
sudo apt install ca-certificates curl openssh-server postfix
您可能已经安装了⼀些此软件。对于postfix的安装,请在出现提⽰时选择“ Internet站点”。在下⼀个屏幕上,输⼊服务器的域名以配置系统发送邮件的⽅式。
第2步 - 安装GitLab
cd /tmp
curl -LO packages.gitlab/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 install gitlab-ce
这将在您的系统上安装必要的组件。
注意事项
在安装GitLab应⽤程序中如果报以下错误,我们可以配置国内加速镜像。
报错信息:
# apt-get install gitlab-ce
Reading Done
Building dependency tree
Reading Done
E: Unable to locate package gitlab-ce
修改安装脚本
sudo vim /etc/apt/sources.list.d/gitlab_gitlab-ce.list
OLD
deb packages.gitlab/gitlab/gitlab-ce/ubuntu/ focal main
deb-src packages.gitlab/gitlab/gitlab-ce/ubuntu/ focal main
NEW
deb mirrors.tuna.tsinghua.edu/gitlab-ce/ubuntu focal main
deb-src mirrors.tuna.tsinghua.edu/gitlab-ce/ubuntu focal main
再次执⾏
sudo apt update
sudo apt install gitlab-ce
第3步 - 调整防⽕墙规则
在配置GitLab之前,您需要确保防⽕墙规则⾜够宽松以允许Web流量。如果您遵循先决条件中链接的指南,则将启⽤ufw防⽕墙。
键⼊以下内容查看活动防⽕墙的当前状态:
sudo ufw status
Status: active
To            Action  From
--            ------  ----
80            ALLOW    Anywhere
22            ALLOW    Anywhere
80 (v6)          ALLOW    Anywhere (v6)
22 (v6)          ALLOW    Anywhere (v6)
如您所见,当前规则允许SSH流量通过,但对其他服务的访问受到限制。由于GitLab是⼀个Web应⽤程序,我们应该允许HTTP访问。因为我们将利⽤GitLab从请求和启⽤免费TLS / SSL证书的功能,所以我们也允许HTTPS访问。
/etc/services⽂件中提供了HTTP和HTTPS的端⼝映射协议,因此我们可以按名称允许该流量。如果您尚未启⽤OpenSSH流量,则现在也应该允许该流量:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
再次检查ufw status
Status: active
To            Action  From
--            ------  ----
80            ALLOW    Anywhere
22            ALLOW    Anywhere
80/tcp          ALLOW    Anywhere
443/tcp          ALLOW    Anywhere
OpenSSH          ALLOW    Anywhere
80 (v6)          ALLOW    Anywhere (v6)
22 (v6)          ALLOW    Anywhere (v6)
80/tcp (v6)        ALLOW    Anywhere (v6)
443/tcp (v6)        ALLOW    Anywhere (v6)
OpenSSH (v6)        ALLOW    Anywhere (v6)
第4步 - 编辑GitLab配置⽂件
在使⽤该应⽤程序之前,需要更新配置⽂件并运⾏重新配置命令。⾸先,打开Gitlab的配置⽂件:
sudo vim /etc/gitlab/gitlab.rb
顶部附近是external_url配置线。更新它以匹配您的域。更改http为https以便GitLab会⾃动将⽤户重定向到受Let's加密证书保护的站点:
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! docs.gitlab/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:
##! docs.aws.amazon/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'example' // 此处修改为您的域名或ip地址
接下来,查letsencrypt['contact_emails']设置。此设置定义了⼀个电⼦邮件地址列表,如果您的域存
在问题,Let的加密项⽬可以⽤来与您联系。取消注释并填写此内容是⼀个好主意,以便您知道任何问题:
letsencrypt['contact_emails'] = ['sammy@example'] // 此处修改为您的邮箱地址
保存并关闭⽂件。运⾏以下命令重新配置Gitlab:
sudo gitlab-ctl reconfigure
这将使⽤它可以到的有关您的服务器的信息初始化GitLab。这是⼀个完全⾃动化的过程,因此您不必回答任何提⽰。该过程还将为您的域配置Let's Encrypt证书。
sudo gitlab-ctl restart
重启 GitLab。
附上GitLab常⽤命令:
常⽤命令说明
sudo gitlab-ctl reconfigure重新加载配置,每次修改/etc/gitlab/gitlab.rb⽂件之后执⾏
sudo gitlab-ctl status查看 GitLab 状态
sudo gitlab-ctl start启动 GitLab
sudo gitlab-ctl stop停⽌ GitLab
sudo gitlab-ctl restart重启 GitLab
sudo gitlab-ctl tail查看所有⽇志
sudo gitlab-ctl tail nginx/gitlab_acces.log查看 nginx 访问⽇志
sudo gitlab-ctl tail postgresql查看 postgresql ⽇志
第5步 - 通过Web界⾯执⾏初始配置
在允许GitLab运⾏和访问的情况下,我们可以通过Web界⾯执⾏应⽤程序的⼀些初始配置。
第5步 - ⾸次登录
在Web浏览器中访问GitLab服务器的域名:
在您第⼀次访问时,您应该看到为管理帐户设置密码的初始提⽰,修改下root管理员密码之后就可以正常使⽤了。
第6步 - 结论
您现在应该在⾃⼰的服务器上托管⼀个正常⼯作的GitLab实例。您可以开始导⼊或创建新项⽬,并为您的团队配置适当的访问级别。GitLab会定期添加功能并对其平台进⾏更新,因此请务必查看项⽬主页以及时了解最新任何改进或重要通知。
GitLab开机⾃动启动
设置GitLab开机⾃启动命令为
sudo systemctl enable gitlab-runsvdir.service
禁⽌GitLab开机⾃启动命令为
sudo systemctl disable gitlab-runsvdir.service
GitLab邮箱配置
以下⽤QQ邮箱为例
第1步 - 开启qq邮箱的POP3/SMTP服务并保存好授权码
这⼀步在qq邮箱的设置 -> 账户中
点击开启按照提⽰步骤操作会获得相应的授权码(注意:记住授权码⼀会要⽤)
第2步 - 修改gitlab的配置⽂件
sudo vim /etc/gitlab/gitlab.rb
#配置邮箱来源,与展⽰的名称
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '您的qq邮箱地址'
gitlab_rails['gitlab_email_display_name'] = '您的邮箱显⽰名称'
#smtp配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "您的qq邮箱地址"
gitlab_rails['smtp_password'] = "您的授权码"
gitlab_rails['smtp_domain'] = "smtp.qq"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
第3步 - 重新加载配置
sudo gitlab-ctl reconfigure
第4步 - 发送测试邮件
sudo gitlab-rails console
#进⼊控制台,然后发送邮件
进⼊邮箱查看是否收到邮件。git常用指令
GitLab修改端⼝
GitLab默认端⼝是80,如果我们想更改成9091端⼝,则需要修改GitLab配置⽂件。
sudo vim /etc/gitlab/gitlab.rb
修改如下配置
nginx['listen_port'] = 9091 // GitLab端⼝,默认80端⼝
unicorn['port'] = 9092 // 可不修改,默认监听8080端⼝
重新加载配置
sudo gitlab-ctl reconfigure
即可修改成功。
GitLab Pages设置
修改gitlab的配置⽂件
sudo vim /etc/gitlab/gitlab.rb
修改如下配置
gitlab_pages[‘enable'] = true; 开启 Pages 服务
pages_external_url ‘您的GitLab Pages域名地址'; 替换成你⾃⼰的域名
gitlab_pages[‘inplace_chroot'] = true; 以Docker container ⽅式运⾏的 Gitlab 必须开启此项
pages_nginx[‘enable'] = true; 开启 Pages 服务的 vhost,该项开启后将会在 /var/opt/gitlab/nginx/conf ⽬录下⽣成独⽴的名为 f Nginx 配置⽂件。
gitlab_pages['access_control'] = true 开启 Pages 访问控制。
重新加载配置
sudo gitlab-ctl reconfigure
GitLab Runner配置
第1步 - 安装
第2步 - 注册
参考链接
到此这篇关于Ubuntu20.04安装配置GitLab的⽅法步骤的⽂章就介绍到这了,更多相关Ubuntu20.04安装配置GitLab内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。