ubuntu下安装gitlab 14.5及配置(降低cpu内存占用)

从12.1开始, CE版本不再支持mysql数据库

当前文档只在 14.5.0 版本下测试通过!

0x00 下载与安装

(镜像)各版本安装包: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/focal/main/g/gitlab-ce

sudo apt-get install wget

# 下载
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/focal/main/g/gitlab-ce/gitlab-ce_14.5.0-ce.0_amd64.deb

# 安装
sudo dpkg -i gitlab-ce_14.5.0-ce.0_amd64.deb

0x01 使用自带的nginx和redis等配置

配置文件: /etc/gitlab/gitlab.rb. 默认存储路径是/var/opt/gitlab/git-data(实际存储在下面的repositories, 这个文件夹会自动建立).

# 修改外部url 注意: 这里是修改, 不是追加!!!!
external_url 'http://192.168.0.204'


nginx['listen_port'] = 8000
gitlab_rails['redis_port'] = 6380
redis['port'] = 6380
# redis不需要集群的话, 有关sentinel的不用改

# 修改文件存储路径, 注意权限设置: `chown -R git.git /git/git-data`
git_data_dirs({
    "default" => {
        "path" => "/git/git-data"
    }
})

重新配置gitlab(耗时较长):

sudo gitlab-ctl reconfigure

重启:

sudo gitlab-ctl restart

每次修改/etc/gitlab/gitlab.rb后都需要运行sudo gitlab-ctl reconfigure

账号root的初始密码在/etc/gitlab/initial_root_password

gitlab自带nginx的配置文件

/var/opt/gitlab/nginx/conf/nginx.conf, 加载的vhost配置是/var/opt/gitlab/nginx/conf/gitlab-http.conf

0x02 备份与恢复

参考官方文档备份和恢复

  • 备份将会创建一个包含所有数据库(用户,权限,job等)、仓库和附件的归档文件
  • 恢复时必须使用相同版本的gitlab.
  • 需要自己设置cron进行备份! 需要自己设置cron进行备份! 需要自己设置cron进行备份!

备份的相关配置

配置 /etc/gitlab/gitlab.rb:

#路径, 默认是 /var/opt/gitlab/backups
gitlab_rails['backup_path'] = '/data/backup/gitlab'

#备份保留时间(秒), 默认是7天
gitlab_rails['backup_keep_time'] = 604800

自定义目录需要设置权限:

mkdir -pv /data/backup/gitlab
sudo chown -R git.git /data/backup/gitlab

配置修改后执行 gitlab-ctl reconfigure 更新设置.

备份

sudo /usr/bin/gitlab-rake gitlab:backup:create

执行结果:

# 这里只是第一次备份的简单的记录, 具体执行时内容可能更多
Creating backup archive: 1638266276_2021_11_30_14.5.0_gitlab_backup.tar ... done
Uploading backup archive to remote storage  ... skipped
Deleting tmp directories ... done
done
done
done
done
done
done
done
Deleting old backups ... done. (0 removed)
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
Backup task is done.

注意: 重要的文件/etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json需要手动备份

恢复备份

恢复操作前确保:

  • 安装和备份的软件版本一致: 区分不同版本/ce/ee
  • 至少执行过一次配置: sudo gitlab-ctl reconfigure 建议先恢复配置/etc/gitlab/gitlab.rb
  • GitLab在运行: sudo gitlab-ctl start
  • 备份文件的owner是git: sudo chown git.git 备份文件

停止数据库连接:

sudo gitlab-ctl stop puma
# 停止队列
sudo gitlab-ctl stop sidekiq

sudo gitlab-ctl stop unicorn ###这个官方文档没有提到


#检查状态
sudo gitlab-ctl status

执行恢复操作

注意: 名称不要带备份文件名后面的"_gitlab_backup.tar". 比如备份的文件名是"1638321295_2021_12_01_14.5.0_gitlab_backup.tar", 调用命令时只能使用"1638321295_2021_12_01_14.5.0", 否则会报错: 找不到文件

# 恢复
sudo gitlab-backup restore BACKUP=/data/backup/gitlab/1638321295_2021_12_01_14.5.0

恢复配置文件

恢复/etc/gitlab/gitlab-secrets.json

重启服务

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
# 校验
sudo gitlab-rake gitlab:check SANITIZE=true

0x03 Gitlab配置

管理员登录后, 点击Gitlab图标后的 Menu => Admin 进入管理界面.

1. 关闭自动注册

Admin -> Settings -> General -> Sign Uprestrictions -> 取消Sign-up enabled

2. 合并时默认选中"delete source branch"选项, 这个目前没有全局配置, 只能合并时注意了.

3. 用户权限

  • 群组(Group)下添加的用户, 默认会拥有该群组的仓库的权限. 如果用户在某仓库中需要更高的权限, 在该仓库中重新添加该账户并设置更高权限即可.
  • gitlab默认只有维护(maintainer)才有权限merge并push到main, 而开发(developer)没有权限合并(虽然能本地merge,但是不能push)

4. 附件上传大小限制

Admin -> Settings -> General -> Account and limit -> "Maximum attachment size(MB)"

如果调大, 则相应的/etc/gitlab/gitlab.rb配置中的nginx设置也要修改:

nginx['client_max_body_size'] = '1024m'

实测: 本地gitlab中设置1m, 无效, 阻止不了大于1m的文件的push.....

5. 禁止用户创建项目

  • 通用设置: Admin -> Settings -> General -> Account and limit -> "Default projects limit" 设置为0
  • 已有用户: User -> Edit -> Access -> "Projects limit" 设置为 0

6. 禁止用户创建群组(Group)

  • 已有用户: User -> Edit -> Access -> 取消"Can create group"选中

7. 用户角色与权限

官方文档: 用户权限

角色分为: Guest, Reporter, Developer, Maintainer, Owner

普通开发人员设置 developer即可, 可以建立&提交自己的分支, 但是不能合并到master

maintainer/owner: 可以合并分支到master

0x04 服务调整与降低内存的占用

官方要求硬件配置至少2核4G, 除了系统占用的1G内存, gitlab大概用去3G内存. 通过降低参数+关闭部分服务, 可以将使用内存降低至2G, 10人以下团队够用了.

gitlab中的各种服务

  • nginx: web服务
  • redis: 消息队列
  • puma: Ruby的http应用服务器. 从13.0开始取代了unicorn成为默认的web服务器
  • prometheus: 监控, 可以关闭
  • grafana: 数据可视化工具, 用以显示Prometheus的指标, 可以关闭.
  • <xxx>_exporter: 用于prometheus监控的xxx数据导出, 可以关闭
  • alertmanager: 报警模块, 可以关闭

优化设置参考

# 优化: 减少服务的内存占用
puma['worker_processes'] = 2
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 4
sidekiq['max_concurrency'] = 2
sidekiq['min_concurrency'] = 1

# 闭关不需要的服务
prometheus['enable'] = false
grafana['enable'] = false
redis_exporter['enable'] = false
gitlab_exporter['enable'] = false
node_exporter['enable'] = false
postgres_exporter['enable'] = false
alertmanager['enable'] = false

参考资料:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Ubuntu 16.04上安装GitLab,你可以按照以下步骤进行操作: 1. 首先,你需要在虚拟机上安装Ubuntu 16.04。你可以按照中提供的指南来安装。 2. 下载适用于Ubuntu 16.04的GitLab软件包。根据中的引用,你可以在的链接中找到GitLab的软件包。你可以使用wget命令将软件包下载到你的虚拟机中。 3. 安装GitLab软件包。你可以使用dpkg命令来安装软件包。具体的命令是: ``` sudo dpkg -i gitlab-ce_13.10.5-ce.0_amd64.deb ``` 该命令将安装GitLab并设置好必要的配置。 4. 配置GitLab。一旦安装完成,你可以通过编辑GitLab配置文件来进行配置。您可以在/etc/gitlab/gitlab.rb文件中找到该文件。你可以根据自己的需求进行配置,例如更改端口、设置域名等。 5. 启动GitLab服务。你可以使用以下命令启动GitLab服务: ``` sudo gitlab-ctl reconfigure ``` 6. 访问GitLab。一旦服务启动完成,你可以在浏览器中访问GitLab。默认情况下,它将在端口80上运行,你可以使用以下URL访问: ``` http://your_domain_or_ip_address ``` 请注意替换"your_domain_or_ip_address"为你的虚拟机的域名或IP地址。 通过按照上述步骤,你应该能够在Ubuntu 16.04上成功安装配置GitLab。希望这对你有所帮助! : 目录 ubuntu16.04搭建gitlab一、在虚拟机ubuntu16.04安装gitlab二、配置gitlab三、使用gitlab四、踩坑记录 : 1.本地下载ubuntu16.04的gitlab包(2021-06-01)(ubuntu版本最好能和gitlab版本对应) : https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/xenial/gitlab-ce_13.10.5-ce.0_amd64.deb

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值