GitLab 社区版(Community Edition,简称 CE)是 GitLab 提供的免费开源版本。与企业版(Enterprise Edition,简称 EE)相比,社区版主要针对个人和小型团队,提供核心的代码仓库管理、代码审查、持续集成/持续部署(CI/CD)等功能。
GitLab CE 可以在 Linux 上通过多种方式安装,包括使用包管理器,Docker 容器,或者从源代码编译。
bashsudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash sudo yum install -y gitlab-ce
bashdocker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 2322: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
完整的操作步骤如下:
运行以下命令以进入正在运行的 GitLab 容器:
bashdocker exec -it gitlab /bin/bash
在容器内执行以下命令来重置 root 密码:
bashgitlab-rake gitlab:password:reset
它会要求你输入新的密码。输入后,系统会打印出新密码。
使用这个新密码登录 GitLab 网页端。之后,你可以在个人设置中再次修改密码。
通过这种方式,你可以安全地为 GitLab 实例设置一个新的 root 密码,而不需要查看日志。这是官方推荐的密码重置流程。
对于一个以 Java 和企业级微服务架构为基础的项目,GitLab 社区版可以提供代码版本管理,以及 CI/CD 流程。这样,每当有代码更改时,GitLab 可以自动触发构建和测试任务,确保代码质量。此外,通过 API 或 Webhook,GitLab 还可以与其他 IT 系统(如 Jira、Kubernetes 等)进行集成,形成一个完整的 DevOps 工作流。
解决方案设计、物理网络蓝图、系统集成接口定义和部署环境蓝图等都可以基于 GitLab 的各种功能来进行详细规划和实施。
在Linux上部署GitLab,不采用Docker的方式,通常是通过下载和安装包来完成。以下是具体的步骤:
bashsudo yum install -y postfix
bashcurl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
bashsudo yum install -y gitlab-ce
/etc/gitlab/gitlab.rb
文件来配置GitLab,例如设置外部URL等。
bashvim /etc/gitlab/gitlab.rb
# 修改external_url 'https://gitlab.example.com'
# 查找:/external_url
bash gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "xxxxxxxxx@qq.com" # 用你的QQ邮箱地址替换
gitlab_rails['smtp_password'] = "brxl*******gfha" # 用你的SMTP授权码替换
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = 'xxxxxxxxx@qq.com' # 用你的QQ邮箱地址替换
运行下面的命令应用你的配置更改:
bashsudo gitlab-ctl reconfigure
其他操作
1、停止:sudo gitlab-ctl stop
2、启动:sudo gitlab-ctl start
3、查看状态:sudo gitlab-ctl status
从您提供的输出中,看起来GitLab已成功配置,并且默认的管理员账户(用户名:**root**)已被创建。但是,出于安全考虑,系统没有在标准输出(STDOUT)中显示初始的root密码。相反,它已将初始密码存储在`/etc/gitlab/initial_root_password`文件中。这个文件会在24小时后的第一次重新配置运行时被清理。 下面是如何获取初始root密码和登录到GitLab的步骤:
/etc/gitlab/initial_root_password
文件中的密码:
bashsudo cat /etc/gitlab/initial_root_password
IP
:port
root
和刚刚获取的密码登录。
重置root密码 (强烈推荐):
清理初始密码文件 (可选):
/etc/gitlab/initial_root_password
文件,以确保不会保留任何敏感信息:
bashsudo rm /etc/gitlab/initial_root_password
通过这些步骤,应该能够获取初始的root密码,登录到您的GitLab实例,并重置root密码以增加安全性。
是的,您可以将GitLab设置为中文。GitLab支持多种语言,包括简体中文。以下是如何将GitLab界面语言设置为中文的步骤:
登录到GitLab:
访问个人设置:
更改语言设置:
确认更改:
根据从不同源获取的信息,下面是在GitLab中启用项目导入选项的步骤:
Settings
> General
(设置 > 通用)。展开Import and export settings
(导入和导出设置)部分,滚动到Project export
(项目导出)、Import sources
(导入源)选项,选择Enabled
(启用)复选框,你可以启用希望允许的导入源,例如Repo by URL
, GitHub
, Bitbucket
等,然后选择Save changes
(保存更改)。
应用程序设置 ( 如果适用 ) :
/admin/application_settings
,并在Import sources
下启用项目导入选项。验证设置: 返回到GitLab的主页面,尝试导入项目以确保您的设置已正确应用。
UTC+8
时区。这意味着北京时间比协调世界时(UTC)快8小时。例如,如果UTC的时间是12:00(中午),那么北京时间将是20:00(晚上8点)。在中国,全国都统一使用北京时间,无论是东部还是西部地区。shcd /opt/gitlab/embedded/service/gitlab-rails
cat VERSION
rpm -q gitlab-ce
同级别的大版本内,也可以通过包管理,进行例行升级
https://docs.gitlab.com/16.10/ee/update/
shsudo yum install gitlab-ce
当从版本 16.5.0 直接升级到 16.10.3时
GitLab的升级脚本检测到需要先升级到 16.7.x 版本, 然后才能继续升级到 16.10.3。
这是由于GitLab的升级路径限制, 不允许跨越多个次要版本号直接升级。
shIs this ok [y/d/N]: y
Downloading packages:
No Presto metadata available for gitlab_gitlab-ce
gitlab-ce-16.10.3-ce.0.el7.x86_64.rpm | 1.0 GB 00:02:12
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
gitlab preinstall: It seems you are upgrading from 16.5 to 16.10.
gitlab preinstall: It is required to upgrade to the latest 16.7.x version first before proceeding.
gitlab preinstall: Please follow the upgrade documentation at https://docs.gitlab.com/ee/update/index.html#upgrade-paths
error: %pre(gitlab-ce-16.10.3-ce.0.el7.x86_64) scriptlet failed, exit status 1
Error in PREIN scriptlet in rpm package gitlab-ce-16.10.3-ce.0.el7.x86_64
Verifying : gitlab-ce-16.10.3-ce.0.el7.x86_64 1/2
gitlab-ce-16.5.0-ce.0.el7.x86_64 was supposed to be removed but is not!
Verifying : gitlab-ce-16.5.0-ce.0.el7.x86_64 2/2
Failed:
gitlab-ce.x86_64 0:16.5.0-ce.0.el7 gitlab-ce.x86_64 0:16.10.3-ce.0.el7
Complete!
shsudo gitlab-ctl status systemctl status gitlab-runsvdir.service
bash# 停止相关数据连接服务,如果使用的话
gitlab-ctl stop unicorn
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
# 备份gitlab数据目录
gitlab-rake gitlab:backup:create
提示
根据输出日志,备份操作现在已经成功完成了。
日志显示备份文件名为 1713423032_2024_04_18_16.5.0。这个备份包含了GitLab实例的大部分数据,包括:
数据库 Git仓库数据 CI构建数据 上传的附件等 但是,需要注意的是,GitLab的配置文件 gitlab.rb 和密钥文件 gitlab-secrets.json 并未包含在备份中。日志有如下提示:
sh2024-04-18 06:50:38 UTC -- 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.
因此,如果将来需要从这个备份还原GitLab实例,你还需要手动备份这两个配置文件。
备份文件默认存储在 /var/opt/gitlab/backups 目录下。你可以将该备份文件复制到其他位置作为额外的备份。
总的来说,现在你已经成功创建了一个GitLab的数据备份,便于未来出现问题时进行还原。不过请记得也备份配置文件,以确保还原后能正常运行。
bash# 停止所有gitlab服务
sudo gitlab-ctl stop
# 安装16.7版本
sudo yum install -y gitlab-ce-16.7.7
shsudo gitlab-ctl reconfigure sudo gitlab-ctl start
shcd /opt/gitlab/embedded/service/gitlab-rails
cat VERSION
rpm -q gitlab-ce
同样的,继续执行以下命令以完成升级,步骤与升级中间版本相同:
bash# 停止相关连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
# 停止所有gitlab服务
sudo gitlab-ctl stop
# 安装16.10.3
sudo yum install -y gitlab-ce-16.10.3
# 重新配置并启动(注:重新配置若更新时自动配置了,则不需要执行)
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
提示
在从16.7.x升级到16.10.3的过程中,您无需再次创建备份。原因如下:
已有备份可用 在第一步从16.5.0升级到16.7.x时,您已经创建了一个名为1713423032_2024_04_18_16.5.0的完整数据备份。只要这个备份文件存在且完整,就可以在升级过程中作为回滚点使用。
文档建议 GitLab官方的升级文档中,对于次要版本之间的升级(如16.7.x到16.10.x),并没有明确要求必须重新创建备份。创建备份主要是为了应对从一个主版本升级到另一个不兼容的主版本时(如16.x到17.x)的风险。
在线升级 GitLab的次要版本升级通常是一个在线的无中断的过程。在升级过程中,服务会短暂停止但数据不会被修改,因此不需要完整备份作为还原点。
效率考虑 创建备份是一个耗时的过程,为了升级效率,中间每个小版本都重新备份是不必要的开销。
因此,根据最佳实践,只需要在主要版本升级前创建一次完整备份即可,作为升级过程中的保险。在后续的次要版本升级中,如果您对现有备份和系统状态有足够的信心,可以跳过备份步骤直接进行升级。
但是,如果您对现有系统或备份的完整性和可靠性有任何疑虑,重新创建一次新的备份也是可以的,这样可以最大程度地降低风险
shcd /opt/gitlab/embedded/service/gitlab-rails
cat VERSION
rpm -q gitlab-ce
注意事项
gitlab-ctl renew-le-certs
。sudo gitlab-ctl status
。安装或升级 GitLab CE 后,首先需要重新配置 GitLab。运行以下命令来启动此过程:
bashsudo gitlab-ctl reconfigure
这个命令会根据新安装的软件包自动重新配置 GitLab,包括应用新的设置、更新数据库结构等。
配置完成后,使用以下命令检查 GitLab 各个组件的状态,确保它们都处于运行中:
bashsudo gitlab-ctl status
这将显示如 Redis、Nginx、Unicorn 等组件的运行状态。
GitLab 应该会自动启动 web 服务,你可以用浏览器访问对应的 URL(例如 http://gitlab.example.com
)查看 GitLab 的登录页面。
使用默认的 root
用户和更新后的新密码(可在 /etc/gitlab/initial_root_password
查看)登录到 GitLab 实例。为了安全起见,建议修改默认的 root
密码。
根据实际需求,你可能还需要进行其他配置,比如设置域名/HTTPS、配置邮件服务器等,请参考 GitLab 官方文档进行操作。
最后,你可以输入以下命令检查是否还有可用的软件包升级,并进行清理:
bashsudo yum update sudo yum clean all
如有新版本的升级包,可以选择继续升级。同时也可以清理过期的包和缓存。按照上述步骤操作,你就能顺利地在升级后继续使用最新版本的 GitLab。
在内存受限的环境中运行极狐GitLab
在启用所有功能的情况下运行时,极狐GitLab需要大量内存。有一些用例,例如在不需要所有功能的较小安装上运行极狐GitLab。例如:
通过一些调整,GitLab可以在比最低要求中描述的规格低得多的规格下舒适地运行。
可以运行极狐GitLab的最低预期规格是:
存储尤其重要,因为在受限环境中,我们预计会发生一定量的内存交换,这会给使用过的磁盘带来更大的压力。
在安装极狐GitLab之前,您需要配置swap。Swap是磁盘上的专用空间,在物理RAM已满时使用。当Linux系统耗尽RAM时,非活动页面将从RAM移动到交换空间。建议的swap配置为可用内存的50%左右。
如何配置Swap
Ubuntu 20.04
bashsudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
CentOS 7
bashsudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
有许多工具可以让您验证基于Linux的系统的性能,例如 sbc-bench,它可以用作一种验证系统性能是否足以在受限环境中运行极狐GitLab的方法。
这些系统提供足够的性能来运行极狐GitLab 的小型安装:
在 /etc/gitlab/gitlab.rb
中禁用监控:
rubyprometheus_monitoring['enable'] = false
rubypuma['worker_processes'] = 0
rubysidekiq['max_concurrency'] = 10
rubygitaly['configuration'] = {
concurrency: [
{'rpc' => "/gitaly.SmartHTTPService/PostReceivePack", 'max_per_repo' => 3},
{'rpc' => "/gitaly.SSHService/SSHUploadPack", 'max_per_repo' => 3}
],
cgroups: {
repositories: {'count' => 2},
mountpoint: '/sys/fs/cgroup',
hierarchy_root: 'gitaly',
memory_bytes: 500000,
cpu_shares: 512,
}
}
gitaly['env'] = {'GITALY_COMMAND_SPAWN_MAX_PARALLEL' => '2'}
进行所有这些更改后,重新配置极狐GitLab以使用新设置:
bashsudo gitlab-ctl reconfigure
配置完成后,您可以预期以下内存使用情况:
total used free shared buff/cache available Mem: 1.9Gi 1.7Gi 151Mi 31Mi 132Mi 102Mi Swap: 1.0Gi 153Mi 870Mi
本文作者:Golovin
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!