Ubuntu 上安装 GitLab

在 Ubuntu 上安装 GitLab 的步骤如下。GitLab 提供社区版(GitLab CE)和企业版(GitLab EE),以下步骤以社区版为例:


方法 1:通过官方包管理工具安装 GitLab

  1. 更新系统包

    bash 复制代码
    sudo apt update
    sudo apt upgrade -y
  2. 安装必要的依赖

    bash 复制代码
    sudo apt install -y curl openssh-server ca-certificates tzdata perl
  3. 添加 GitLab 官方包存储库

    下载并运行 GitLab 提供的脚本:

    bash 复制代码
    curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
  4. 安装 GitLab CE

    指定你的域名(或 IP 地址)时,请替换 <YOUR_DOMAIN>

    bash 复制代码
    sudo EXTERNAL_URL="http://<YOUR_DOMAIN>" apt install gitlab-ce -y

    sudo EXTERNAL_URL="http://13.229.140.142" apt install gitlab-ce -y

  5. 配置 GitLab

    安装完成后,运行以下命令配置并启动 GitLab:

    bash 复制代码
    sudo gitlab-ctl reconfigure
  6. 访问 GitLab

    • 打开浏览器,访问 http://<YOUR_DOMAIN>http://<YOUR_SERVER_IP>
    • 默认的管理员用户为 root,首次登录时会提示设置密码。

    http://13.229.140.142

    root

    WThvB7LjW2JBMg60dReq9qXIW7BgykROMAHJg8J0SH0=

cat /etc/gitlab/initial_root_password


方法 2:通过 Docker 安装 GitLab(可选)

使用 Docker 安装 GitLab 是一种更灵活的方式。

  1. 安装 Docker

    如果尚未安装 Docker,请先安装:

    bash 复制代码
    sudo apt update
    sudo apt install -y docker.io
  2. 拉取 GitLab Docker 镜像

    拉取最新的社区版镜像:

    bash 复制代码
    docker pull gitlab/gitlab-ce:latest
  3. 运行 GitLab 容器

    替换 <YOUR_DOMAIN> 为你的域名或服务器 IP:

    bash 复制代码
    docker run --detach \
      --hostname <YOUR_DOMAIN> \
      --publish 443:443 --publish 80:80 --publish 22:22 \
      --name gitlab \
      --restart always \
      --volume /srv/gitlab/config:/etc/gitlab \
      --volume /srv/gitlab/logs:/var/log/gitlab \
      --volume /srv/gitlab/data:/var/opt/gitlab \
      gitlab/gitlab-ce:latest
  4. 访问 GitLab

    打开浏览器访问 http://<YOUR_DOMAIN>,并按照界面提示完成初始配置。


常用命令

  1. 启动 GitLab 服务

    bash 复制代码
    sudo gitlab-ctl start
  2. 停止 GitLab 服务

    bash 复制代码
    sudo gitlab-ctl stop
  3. 查看 GitLab 状态

    bash 复制代码
    sudo gitlab-ctl status
  4. 重启 GitLab 服务

    bash 复制代码
    sudo gitlab-ctl restart
  5. 查看日志

    bash 复制代码
    sudo gitlab-ctl tail

注意事项

  • 防火墙配置:确保开放 HTTP(80)、HTTPS(443)、和 SSH(22) 端口:

    bash 复制代码
    sudo ufw allow http
    sudo ufw allow https
    sudo ufw allow ssh
  • 内存需求:GitLab 推荐至少 4GB RAM,最低 2GB RAM。

  • 备份:定期备份 GitLab 数据:

    bash 复制代码
    sudo gitlab-rake gitlab:backup:create

按照以上步骤,你可以在 Ubuntu 系统上顺利安装和配置 GitLab。如果需要更多自定义设置,可以参考 GitLab 的官方文档.

要调整 GitLab 的内存使用配置为 2GB,可以通过优化 GitLab 的内存相关设置来完成。这在资源受限的环境(如小型虚拟机或测试环境)中特别有用。


步骤 1:修改 Unicorn/Sidekiq 的配置

GitLab 使用 Unicorn(或 Puma)Sidekiq 作为核心组件,这些组件可以调整内存占用。

  1. 打开配置文件

    GitLab 的主要配置文件在 /etc/gitlab/gitlab.rb

    bash 复制代码
    sudo nano /etc/gitlab/gitlab.rb
  2. 调整 Unicorn/Puma 工作线程

    找到或添加以下设置,减少工作线程数以降低内存使用:

    ruby 复制代码
    puma['worker_processes'] = 2  # 如果是 Unicorn,使用 unicorn['worker_processes']
  3. 调整 Sidekiq 并发任务数

    找到或添加以下设置,减少 Sidekiq 并发任务数:

    ruby 复制代码
    sidekiq['concurrency'] = 5

步骤 2:调整数据库连接池

减少数据库连接池大小可以节省资源。

  1. 在配置文件中添加或修改以下设置:

    ruby 复制代码
    postgresql['shared_buffers'] = "256MB"
    postgresql['work_mem'] = "4MB"
    postgresql['maintenance_work_mem'] = "16MB"
  2. 调整 GitLab 数据库的连接池大小:

    ruby 复制代码
    gitlab_rails['db_pool'] = 5

步骤 3:优化 Redis

Redis 是 GitLab 的缓存和队列系统,调整其内存限制可以减少消耗。

  1. 在配置文件中添加或修改:

    ruby 复制代码
    redis['maxmemory'] = "512MB"
  2. 限制 Redis 的最大内存策略(一般默认是 noeviction):

    bash 复制代码
    sudo nano /var/opt/gitlab/redis/redis.conf

    添加或修改以下内容:

    plaintext 复制代码
    maxmemory-policy allkeys-lru

步骤 4:重新配置 GitLab

应用配置更改后,重新配置 GitLab:

bash 复制代码
sudo gitlab-ctl reconfigure

步骤 5:重启 GitLab 服务

重启 GitLab 服务以使更改生效:

bash 复制代码
sudo gitlab-ctl restart

步骤 6:监控内存使用情况

使用以下命令监控内存使用情况,确保调整后的 GitLab 稳定运行:

bash 复制代码
free -m
htop

注意事项

  1. 适配低内存环境

    • GitLab 推荐至少 4GB 内存,配置为 2GB 可能影响性能。
    • 在测试环境中较为适合,但在生产环境需要谨慎调整。
  2. 减小缓存

    • 配置 Gitaly 缓存大小限制(Gitaly 是 GitLab 的存储服务):

      ruby 复制代码
      gitaly['cgroups_memory_limit'] = 1024 * 1024 * 1024 # 限制为 1GB
  3. 更新配置后及时测试

    • 检查服务是否正常运行,执行以下命令查看状态:

      bash 复制代码
      sudo gitlab-ctl status

通过以上步骤,可以将 GitLab 的内存使用控制在 2GB 左右。

相关推荐
A ?Charis1 小时前
k8s-对接NFS存储
linux·服务器·kubernetes
DC_BLOG5 小时前
Linux-GlusterFS进阶配置
linux·运维·服务器
我们的五年5 小时前
MAC地址是如何在局域网中工作的?
linux
浮华落定7 小时前
Centos开机自启动
linux·运维·centos
去看日出7 小时前
CentOS 7 企业级Redis 7部署指南
linux·redis·centos
End9288 小时前
如何安装虚拟机cenos7系统
大数据·linux·运维
果汁分你一半l9 小时前
c++标准io与线程,互斥锁
linux·开发语言·c++·算法·vim
WineMonk9 小时前
CentOS查看IP地址
linux·centos
5:009 小时前
Linux:进程间通信(一.初识进程间通信、匿名管道与命名管道、共享内存)
linux·运维·服务器
ARM+FPGA+AI工业主板定制专家10 小时前
Software PLC Solution for RK3568+Codesys ARM+LINUX Hardware Platform
linux·plc·rk3568·codesys