开始管理 GitLab
- 层级:Free, Premium, Ultimate
- 提供方式:GitLab 自托管
开始使用 GitLab 管理功能。配置您的组织及其认证,然后确保安全、监控并备份 GitLab。
认证
认证是使安装更安全的第一步。
- 为所有用户强制启用双因素认证 (2FA)。您应该对 GitLab 自托管实例使用 2FA。
- 确保用户执行以下操作:
- 选择强密码。如果可能,将其存储在密码管理系统中。
- 如果未对所有用户配置,请为您的账户开启 双因素认证 (2FA)。这个一次性秘密码是一种额外的保护措施,即使入侵者拥有您的密码,也能阻止他们进入。
- 添加备用邮箱。如果您失去账户访问权限,GitLab 支持团队可以更快地帮助您。
- 保存或打印您的恢复码。如果您无法访问身份验证设备,可以使用这些恢复码登录 GitLab 账户。
- 向您的资料添加 SSH 密钥。您可以根据需要生成恢复码,通过 SSH 实现。
- 创建 个人访问令牌。当您使用 2FA 时,可以使用这些令牌访问 GitLab API。
项目和群组
通过配置群组和项目来组织您的环境。
观看 群组和项目 的概览视频。
开始操作:
更多资源
- 运行多个敏捷团队。
- 使用 LDAP 同步群组成员资格。
- 使用继承权限管理用户访问。最多可使用 20 个层级的子群组来组织团队和项目。
导入项目
您可能需要从外部来源(如 GitHub、Bitbucket 或另一个 GitLab 实例)导入项目。许多外部来源都可以导入到 GitLab 中。
- 查看 GitLab 项目文档。
- 考虑 仓库镜像,这是 项目迁移的替代方案。
- 查阅我们的 迁移索引,了解常见迁移路径的文档。
- 通过我们的 导入/导出 API 安排项目导出。
热门项目导入
有关这些数据类型的帮助,请联系您的 GitLab 账户经理或 GitLab 支持团队,了解我们的专业迁移服务。
GitLab 实例安全
安全性是入职流程的重要组成部分。保护您的实例可以保障您的工作和组织的安全。
虽然这不是一份详尽的清单,但遵循这些步骤能让您为实例安全打下坚实基础:
- 使用长根密码,并存储在保险库中。
- 安装可信SSL证书,并建立续期和吊销流程。
- 根据组织指南配置SSH密钥限制。
- 关闭新注册功能。
- 要求邮箱验证。
- 设置密码长度限制,配置SSO或SAML用户管理。
- 如果允许注册,请限制邮箱域名。
- 要求开启双因素认证(2FA)。
- 关闭Git over HTTPS的密码认证。
- 设置未知登录的邮件通知。
- 配置用户和IP速率限制。
- 限制Webhook本地访问。
- 为受保护路径设置速率限制。
- 从通信偏好中心订阅安全警报。
- 关注我们博客页面的安全最佳实践。
监控GitLab性能
完成基础设置后,您可以查看GitLab监控服务。Prometheus是我们的核心性能监控工具。 与其他监控方案(例如Zabbix或New Relic)不同,Prometheus与GitLab深度集成,且有广泛社区支持。
- Prometheus 捕获这些GitLab指标。
- 了解更多关于GitLab捆绑软件指标的信息。
- Prometheus及其导出器默认启用。不过,您必须配置该服务。
- 了解为何应用性能指标至关重要。
- 集成Grafana以构建可视化仪表盘,基于性能指标。
监控组件
- Web服务器:处理服务器请求并促进其他后台服务事务。监控CPU、内存和网络IO流量以跟踪节点健康状态。
- Workhorse:缓解主服务器的网络拥堵。监控延迟峰值以跟踪节点健康状态。
- Sidekiq:处理后台操作,使GitLab运行顺畅。监控长时间未处理的任务队列以跟踪节点健康状态。
备份您的GitLab数据
GitLab提供备份数据的方法,以确保您的数据安全和可恢复。无论您使用GitLab自托管还是GitLab.com数据库,定期备份数据都至关重要。
- 制定备份策略。
- 考虑编写cron作业进行每日备份。
- 单独备份配置文件。
- 决定哪些内容不应包含在备份中。
- 决定上传备份的位置。
- 限制备份生命周期。
- 运行测试备份和恢复。
- 建立定期验证备份的方式。
备份实例
根据部署方式(Linux包或Helm Chart),流程有所不同。
对于使用Linux包的单节点安装,可通过单个Rake任务完成备份。
了解备份Linux包或Helm变体。 此过程会备份整个实例,但不包括配置文件。请确保单独备份这些文件。 将配置文件和备份归档存放在独立位置,确保加密密钥不与加密数据一同保存。
恢复备份
仅能将备份恢复到完全相同版本和类型(社区版/企业版)的GitLab上。
备份 GitLab SaaS
我们通过 磁盘快照 每小时对生产数据库执行一次备份,并通过 wal-g 基础备份 每 24 小时执行一次备份,同时将 持续归档或 WAL 事务日志文件 流式传输到 GCS 以实现时间点恢复。
所有备份均已加密。90 天后,备份将被删除。
- GitLab SaaS 创建备份以确保您的数据安全,但您不能使用这些方法自行导出或备份数据。
- 问题存储在数据库中。它们无法存储在 Git 本身中。
- 您可以在以下位置使用项目导出选项:
- 通过上传文件导出组 不会 导出其中的项目,但会导出:
- 史诗(Epic)
- 里程碑(Milestone)
- 看板(Board)
- 标签(Label)
- 其他项
替代备份策略
在某些情况下,用于备份的 Rake 任务可能不是最优解。如果该任务对您无效,以下是可考虑的 替代方案。
选项 1:文件系统快照
如果您的 GitLab 服务器包含大量 Git 仓库数据,您可能会发现 GitLab 备份脚本速度过慢。尤其是备份到异地位置时,这种情况更为明显。
通常在 Git 仓库数据大小约为 200 GB 时开始出现缓慢。在这种情况下,您可以考虑将文件系统快照作为备份策略的一部分。例如,考虑一个具有以下组件的 GitLab 服务器:
- 使用 Linux 包。
- 托管在 AWS 上,EBS 驱动器包含挂载在
/var/opt/gitlab的 ext4 文件系统。
EC2 实例通过拍摄 EBS 快照满足应用程序数据备份的要求。备份包括所有仓库、上传内容和 PostgreSQL 数据。
如果您在虚拟化服务器上运行 GitLab,可以创建整个 GitLab 服务器的 VM 快照。VM 快照通常需要您关闭服务器电源。
选项 2:GitLab Geo
- 层级:高级版、旗舰版
- 提供:GitLab 自托管
Geo 提供本地只读的 GitLab 实例副本。虽然 GitLab Geo 通过使用本地 GitLab 节点帮助远程团队更高效地工作,但它也可用作灾难恢复解决方案。了解有关将 Geo 用作灾难恢复解决方案 的更多信息。
Geo 复制您的数据库、Git 仓库和其他一些资产。了解更多关于 Geo 复制的 dataType。
对 GitLab 自托管的支持
GitLab 通过不同渠道为 GitLab 自托管提供支持。
- 优先支持:高级版和旗舰版 GitLab 自托管客户可获得分层响应时间的优先支持。了解有关 升级至优先支持 的更多信息。
- 现场升级协助:在生产升级期间获得一对一专家指导。凭借您的 优先支持计划,您可以获得与我们的支持团队成员进行实时、预定的屏幕共享会议的资格。
要获取 GitLab 自托管的协助:
GitLab SaaS支持
GitLab SaaS提供全天候监控。我们的全站可靠性与生产工程师团队随时待命。
很多时候,等你发现问题,已经有人在处理了。
获取GitLab SaaS帮助的方式:
GitLab自托管版本的API与速率限制
速率限制可防止拒绝服务攻击或暴力破解攻击。在大多数情况下,通过限制单个IP地址的请求频率,可以降低应用程序和基础设施的负载。
速率限制还能提升应用程序的安全性。
配置GitLab自托管版本的速率限制
您可以从Admin区域对默认速率限制进行调整。有关配置的更多信息,请参阅Admin区域页面。
- 定义问题创建速率限制,以设置每个用户每分钟的问题创建请求数量上限。
- 对未认证的网络请求实施user和IP速率限制。
- 查看原始端点的速率限制。默认设置为每分钟300次原始文件访问请求。
- 查看导入/导出速率限制,这是六个活跃默认值中的设置。
有关API和速率限制的更多信息,请参阅我们的API页面。
GitLab SaaS的API与速率限制
速率限制可防止拒绝服务攻击或暴力破解攻击。当GitLab.com收到来自单一IP地址的异常流量时,通常会触发IP封锁。系统会根据速率限制设置,将异常流量视为潜在恶意行为。
速率限制还能提升应用程序的安全性。
配置GitLab SaaS的速率限制
您可以从Admin区域对默认速率限制进行调整。有关配置的更多信息,请参阅Admin区域页面。
- 查看速率限制页面。
- 阅读API页面以了解更多关于API和速率限制的信息。
GitLab SaaS特有的阻止和错误响应
- 403禁止错误:如果该错误出现在所有GitLab SaaS请求中,请查找可能触发阻止的自动化流程。如需更多帮助,请联系GitLab支持,并提供包含受影响IP地址的错误详情。
- HAProxy API限流:当单个IP地址每秒超过10个API请求时,GitLab SaaS会返回HTTP状态码429。
- 保护路径限流:当单个IP地址在受保护的路径上每分钟超过10个POST请求时,GitLab SaaS会返回HTTP状态码429。
- Git和容器注册表身份验证失败封禁:如果GitLab SaaS在三分钟内收到来自同一IP地址的30次身份验证失败请求,则会返回HTTP状态码403并持续一小时。
GitLab培训资源
您可以学习如何管理GitLab。
付费GitLab培训
- GitLab教育服务:通过我们的专业培训课程了解Gilab和DevOps最佳实践。查看完整课程目录。
免费GitLab培训
- GitLab基础:发现关于Git和GitLab基础的自助指南。
- GitLab大学:在GitLab大学的结构化课程中学习新的GitLab技能。
第三方培训
- Udemy:如果想找更实惠的引导式培训选项,可以考虑在 Udemy 上学习 GitLab CI: Pipelines, CI/CD, and DevOps for Beginners。
- LinkedIn Learning:可以看看在 LinkedIn Learning 上的 Continuous Delivery with GitLab,作为另一个低成本引导式培训选项。