zoukankan      html  css  js  c++  java
  • ubuntu 安装 gitlab

    介绍

    GitLab CE或Community Edition是一个开源应用程序,主要用于托管Git存储库,以及其他与开发相关的功能,如问题跟踪。它旨在使用您自己的基础架构进行托管,并为您的开发团队提供部署内部存储库的灵活性,与用户交互的公共方式,或者为贡献者提供托管自己项目的方法。

    GitLab项目使用简单的安装机制在您自己的硬件上设置GitLab实例变得相对简单。在本指南中,我们将介绍如何在阿里云Ubuntu 20.04服务器上安装和配置GitLab。

    前提条件

    • 部署GitLab的实例要求至少使用2个vCPU和4GiB的内存,本示例中使用的相关资源版本如下。

      • 实例规格:ECS共享型 s6 2核4G1M带宽
      • 操作系统:Ubuntu 20.04
    • 已添加如下表所示的安全组规则。

      方向协议/应用端口/范围源地址
      入方向 HTTP(80) 80 0.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 https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
     

     

    您可以随意检查下载的脚本,以确保您对所需的操作感到满意。您还可以在此处找到该脚本的托管版本:

    less /tmp/script.deb.sh
     
    • 1

    一旦您对脚本的安全性感到满意,请运行安装程序:

    sudo bash /tmp/script.deb.sh
     

     

    该脚本将设置您的服务器以使用GitLab维护的存储库。这使您可以使用与其他系统软件包相同的软件包管理工具来管理GitLab。完成后,您可以使用以下apt命令安装实际的GitLab应用程序:

    sudo apt install gitlab-ce
     

     

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

    注意事项

    在安装GitLab应用程序中如果报以下错误,我们可以配置国内加速镜像。

    报错信息:

    # apt-get install gitlab-ce
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Unable to locate package gitlab-ce
     

    修改安装脚本

    sudo vim /etc/apt/sources.list.d/gitlab_gitlab-ce.list
     

     

    OLD

    deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ focal main
    deb-src https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ focal main
     

     

    NEW

    deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu focal main
    deb-src https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu focal main
     

     

    再次执行

    sudo apt update
    sudo apt install gitlab-ce
     

     

    参考链接:https://gitlab.com/gitlab-org/gitlab-foss/-/issues/2370

    第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从Let’s Encrypt请求和启用免费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配置线。更新它以匹配您的域。更改httphttps以便GitLab会自动将用户重定向到受Let’s加密证书保护的站点:

    ## 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://example.com' // 此处修改为您的域名或ip地址
     

     

    接下来,查找letsencrypt['contact_emails']设置。此设置定义了一个电子邮件地址列表,如果您的域存在问题,Let的加密项目可以用来与您联系。取消注释并填写此内容是一个好主意,以便您知道任何问题:

    letsencrypt['contact_emails'] = ['sammy@example.com'] // 此处修改为您的邮箱地址
     

     

    保存并关闭文件。运行以下命令重新配置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服务器的域名:

    https://example.com // 您external_url配置的地址
     

     

    在您第一次访问时,您应该看到为管理帐户设置密码的初始提示,修改下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.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "您的qq邮箱地址"
    gitlab_rails['smtp_password'] = "您的授权码"
    gitlab_rails['smtp_domain'] = "smtp.qq.com"
    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
    
    #进入控制台,然后发送邮件
    Notify.test_email('测试邮箱地址', '邮件标题', '邮件正文').deliver_now
     

    进入邮箱查看是否收到邮件。

    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 目录下生成独立的名为 gitlab-pages.conf Nginx 配置文件。
    gitlab_pages['access_control'] = true 开启 Pages 访问控制。
     

     

    重新加载配置

    sudo gitlab-ctl reconfigure
     

     

    GitLab Runner配置

    第1步 - 安装

    参考官网安装流程:https://docs.gitlab.com/runner/install/linux-repository.html

    第2步 - 注册

    参考官网注册流程:https://docs.gitlab.com/runner/register/

    参考链接

    作者:xyyhqq

    -------------------------------------------

    Never Stop !

  • 相关阅读:
    洛谷 P1202 [USACO1.1]黑色星期五Friday the Thirteenth 题解
    洛谷 P1957 口算练习题 题解
    洛谷 P2036 Perket 题解
    洛谷 P2369 EXCEEDED WARNING A 题解
    洛谷 P1184高手之在一起 题解
    洛谷 P1897电梯里的爱情 题解
    Python做的眼睛护士
    Python-Tkinter的Entry详解
    Python的TkinterButton做为父窗口
    Python用Tkinter的Frame实现眼睛护士的倒计时黑色屏幕
  • 原文地址:https://www.cnblogs.com/xyyhcn/p/15059914.html
Copyright © 2011-2022 走看看