二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • 最佳实践

    • 运维最佳实践

      • 一句话经验
      • 基于CNAME解析实践的域名优雅方案
      • 如何配置历史命令中有详细的时间戳
      • 建设一个运维外挂的最佳实践
      • 关于打包压缩几种格式(gzip,bzip2,xz)的试验对比
      • 利用谷歌浏览器自定义agent监听日志来调试服务
      • fdisk,parted使用非交互式方式对磁盘进行分区操作
      • GitLab部署的最佳实践
        • 1,资源需求
        • 2,安装软件
        • 3,准备工作
        • 4,配置文件
      • GitLab全局搜索之SourceGraph
      • vector实践-性能吊打logstash
      • 规范编码之利用pre-commit给项目添加提交前检查
      • CMDB平台建设指南
      • 用上赛博菩萨CNB,咱直接起飞
    • 成本优化实践

  • 迎刃而解

  • Nginx

  • Php

  • Zabbix

  • AWS

  • Prometheus

  • Grafana

  • Loki

  • CentOS

  • Supervisord

  • Systemd

  • Docker

  • Docker-Compose

  • Rancher

  • Ansible

  • OpenLdap

  • GitLab

  • GitHub

  • Etcd

  • Consul

  • RabbitMQ

  • Kafka

  • Mysql

  • MongoDB

  • OpenVPN

  • Kvm

  • VMware

  • 配置文件详解

  • Other

  • 运维观止
  • 最佳实践
  • 运维最佳实践
二丫讲梵
2021-09-20
目录

GitLab部署的最佳实践

文章发布较早,内容可能过时,阅读注意甄别。

# 1,资源需求

  • 配置:在越大越好的前提下,建议不低于8C16G。
  • 存储:建议100G系统盘+800G数据盘。盘的规格越高越好。最低SSD,其中数据盘可酌情加大,800G 数据盘管三五年没问题。
    • 此处要考虑到备份文件,如果数据目录有 100G 左右,那么备份文件可能会有八十多 G,本地保留不可过多,尽量异地备份。
  • 注意:
    • 注意数据盘挂载到/data 目录中。
    • 注意组件数据目录通过本地挂载进行了软链,此事儿下边详述。

# 2,安装软件

gitlab 的安装非常简单,这里不做赘述。

$ yum install -y curl openssh-server postfix cronie
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
$ yum install gitlab-ce
1
2
3

默认安装当前 yum 源内的最新版本,如果想要安装指定版本,可运行如下命令:yum install gitlab-ce-11.0.2。

# 3,准备工作

创建数据相关需求目录:

$ mkdir -p /data/gitlab-all-in-one/{backups,git-data,var-opt-gitlab}
$ useradd git && chown -R git.git /data/gitlab-all-in-one
1
2
  • 说明:
    • git-data:gitlab 代码数据目录。
    • backups:数据备份目录。
    • var-opt-gitlab:组件数据目录。

重要:注意组件数据目录在配置文件中默认为:/var/opt/gitlab,为了与系统盘进行隔离以及数据存储目录统一,需要进行本地挂载处理:

$ echo '/data/gitlab-all-in-one/var-opt-gitlab  /var/opt/gitlab  none bind 0 0' >> /etc/fstab
$ mkdir /var/opt/gitlab
$ mount -a
1
2
3

此时系统的 /var/opt/gitlab最终指向的其实是 /data/gitlab-all-in-one/var-opt-gitlab。

注意:这里并不能通过软链进行处理,实测软链的方式会导致部分组件起不来。

申明

原创文章eryajf,未经授权,严禁转载,侵权必究!此乃文中随机水印,敬请读者谅解。

Copyright 二丫讲梵 (opens new window) 版权所有

# 4,配置文件

配置文件如下,其余未显示指定的,统一走默认配置:

$ egrep -v '^#|^$' gitlab.rb
external_url 'https://gitlab.eryajf.net'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "no-reply@eryajf.net"
gitlab_rails['smtp_password'] = "test"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'no-reply@eryajf.com'
gitlab_rails['smtp_domain'] = "exmail.qq.com"
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
  main: # 'main' is the GitLab 'provider ID' of this LDAP server
    label: 'LDAP'
    host: 'ldap.eryajf.net'
    port: 389
    uid: 'sn'
    bind_dn: 'cn=admin,dc=eryajf,dc=net'
    password: 'test'
    encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
    verify_certificates: true
    smartcard_auth: false
    active_directory: false
    allow_username_or_email_login: false
    lowercase_usernames: false
    block_auto_created_users: false
    base: 'ou=staff,dc=eryajf,dc=net'
    user_filter: ''
    ## EE only
    group_base: ''
    admin_group: ''
    sync_ssh_keys: false
EOS
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/data/gitlab-all-in-one/backups"
git_data_dirs({
  "default" => {
    "path" => "/data/gitlab-all-in-one/git-data"
   }
})
nginx['enable'] = true
nginx['client_max_body_size'] = '512m'
nginx['redirect_http_to_https'] = true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

然后通过如下命令重载配置文件:

gitlab-ctl reconfigure
1

当看到:

Running handlers:
Running handlers complete
Chef Infra Client finished, 570/1519 resources updated in 03 minutes 11 seconds

Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.

NOTE: Because these credentials might be present in your log files in plain text, it is highly recommended to reset the password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

gitlab Reconfigured!
1
2
3
4
5
6
7
8
9
10
11
12
13

则说明配置完成了。

微信 支付宝
#gitlab
上次更新: 2024/07/04, 22:40:37
fdisk,parted使用非交互式方式对磁盘进行分区操作
GitLab全局搜索之SourceGraph

← fdisk,parted使用非交互式方式对磁盘进行分区操作 GitLab全局搜索之SourceGraph→

最近更新
01
学习周刊-总第212期-2025年第21周
05-22
02
从赵心童世锦赛夺冠聊聊我的斯诺克情缘
05-16
03
学习周刊-总第211期-2025年第20周
05-15
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式