GitLab服务器的搭建
为公司搭建一台代码托管服务器
服务器规格:2vCPUs+4GiB+20G
操作系统:RockyLinux8.8
下载软件
gitlab官网:http://about.gitlab.com
在官网下载比较麻烦,推荐从《清华大学开源软件镜像站》下载
清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/
搜索框输入:gitlab
选择gitlab-ce
,在里面进入yum目录,再下载rpm软件包(当前使用的方法)
点击这个“蓝色的小问号”就会告诉你怎么配置yum地址(如果机器可以上网,也可以用这种方式)
[root@gitlab ~]# ls
gitlab-ce-13.1.0-ce.0.el7.x86_64.rpm
安装软件
[root@gitlab ~]# rpm -ivh --nodeps --force gitlab-ce-13.1.0-ce.0.el7.x86_64.rpm
-
-i
: 安装软件包。 -
-v
: 显示详细的安装过程(verbose)。 -
-h
: 在安装过程中显示安装进度(hash marks)。 -
--nodeps
: 不检查软件包之间的依赖关系。这通常是不推荐的,因为它可能导致系统不稳定或软件包无法正常工作。但在某些特殊情况下,当您知道自己在做什么并且确实需要这样做时,可以使用这个选项。 -
--force
: 强制进行某些操作,例如覆盖已经存在的文件。这同样是一个需要谨慎使用的选项,因为它可能会破坏现有的系统文件或配置。重启GitLab相关服务
[root@gitlab ~]# gitlab-ctl restart
[2024-05-01T22:40:31+08:00] WARN: Please install an English UTF-8 locale for Chef to use, falling back to C locale and disabling UTF-8 support.
ok: run: alertmanager: (pid 3487) 1s
ok: run: gitaly: (pid 3497) 0s
ok: run: gitlab-exporter: (pid 3514) 1s
ok: run: gitlab-workhorse: (pid 3531) 0s
ok: run: grafana: (pid 3542) 1s
ok: run: logrotate: (pid 3630) 0s
ok: run: nginx: (pid 3636) 0s
ok: run: node-exporter: (pid 3649) 1s
ok: run: postgres-exporter: (pid 3655) 0s
ok: run: postgresql: (pid 3664) 1s
ok: run: prometheus: (pid 3673) 0s
ok: run: puma: (pid 3686) 1s
ok: run: redis: (pid 3692) 0s
ok: run: redis-exporter: (pid 3698) 0s
ok: run: sidekiq: (pid 3706) 0s
alertmanager:用于处理来自客户端(如 Prometheus)的警报,并将它们通过不同的方式(如电子邮件、Slack、PagerDuty 等)发送出去。
gitaly:GitLab 的后端服务,提供了对 Git 仓库的访问和操作。GitLab 通过 Gitaly 来进行几乎所有的 Git 操作。
gitlab-exporter:一个 Prometheus 导出器(exporter),用于收集 GitLab 的监控数据并暴露给 Prometheus。
gitlab-workhorse:GitLab 的反向代理服务器,用于处理前端 HTTP 请求,并将它们路由到正确的后端服务。
grafana:一个开源的数据可视化工具,用于构建和分享监控仪表板。GitLab 可能用它来展示 Prometheus 收集的监控数据。
logrotate:用于管理日志文件的工具,可以自动轮换、压缩、删除和邮件日志文件。确保日志文件不会占用过多的磁盘空间。
nginx:一个高性能的 HTTP 和反向代理服务器,也是 IMAP/POP3/SMTP 代理服务器。在 GitLab 中,它通常作为静态文件服务器和反向代理使用。
node-exporter:Prometheus 的 Node Exporter,用于从主机上收集硬件和操作系统的指标。
postgres-exporter:Prometheus 的 PostgreSQL 导出器,用于收集 PostgreSQL 数据库的性能指标。
postgresql:GitLab 的数据库服务,用于存储所有的元数据(如用户信息、项目设置、CI/CD 配置等)。
prometheus:一个开源的监控和告警工具包,用于收集、存储和查询时间序列数据。GitLab 使用它来监控整个集群的健康状况和性能。
puma:GitLab Ruby 应用的一个 web 服务器,用于处理应用程序的请求。
redis:一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息代理。在 GitLab 中,它通常用作缓存服务。
redis-exporter:Prometheus 的 Redis 导出器,用于收集 Redis 服务器的性能指标。
sidekiq:GitLab 使用的后台处理服务,用于处理非实时任务,如发送电子邮件、处理 CI/CD 管道等。
通过浏览器访问配置管理页面
[root@gitlab ~]# ss -untlp | grep nginx
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=3638,fd=7),("nginx",pid=3637,fd=7),("nginx",pid=3636,fd=7))
tcp LISTEN 0 511 0.0.0.0:8060 0.0.0.0:* users:(("nginx",pid=3638,fd=8),("nginx",pid=3637,fd=8),("nginx",pid=3636,fd=8))
确定nginx正常启动
通过浏览器访问:http://192.168.1.20
登录
通过用户偏好设置对页面进行汉化
刷新一下页面,就可以看见效果了
用户管理
为程序员提供账号
GitLab组管理
可以把相同部门的人放在同一个组
创建项目
http://gitlab.example.com/codingteam/demo.git
需要把地址中的 gitlab.example.com
部分修该为本机的ip就可以了
http://192.168.1.20/codingteam/demo.git
现在只需要把地址,告诉程序员,就可以提交代码了
命令行指引
您还可以按照以下说明从计算机中上传现有文件。
Git 全局设置
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
创建一个新仓库
git clone http://192.168.1.20/codingteam/demo.git
cd demo
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
推送现有文件夹
cd existing_folder
git init
git remote add origin http://192.168.1.20/codingteam/demo.git
git add .
git commit -m "Initial commit"
git push -u origin master
推送现有的 Git 仓库
cd existing_repo
git remote rename origin old-origin
git remote add origin http://192.168.1.20/codingteam/demo.git
git push -u origin --all
git push -u origin --tags
gin master