Skip to content

一、Gitlab版本控制部署

1.1 环境信息

软件/系统名称版本下载地址备注
OpenEuler22.03 LTS SP4
Gitlab-cegitlab-ce-17.1.1https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-17.1.1-ce.0.el7.x86_64.rpmRPM包安装方式

1.2 安装前配置

1.2.1 挂载GitLab默认存储路径

GitLab 主要目录说明

  • /var/opt/gitlab/git-data/repositories/:仓库默认存储目录
  • /opt/gitlab: 应用程序代码和相应的依赖程序
  • /var/opt/gitlab:gitlab数据存放路径 gitlab-ctl reconfigure 命令编译后的应用数据和配置文件,不需要人为修改配置
  • /etc/gitlab: 配置文件目录
  • /etc/gitlab/gitlab.rb:gitlab配置文件
  • /var/log/gitlab:此目录下存放了 gitlab 各个组件产生的日志
  • /var/opt/gitlab/backups/:备份文件生成的目录
bash
#准备1块1T的硬盘

#分区
fdisk /dev/sdb   划分两个分区出来
 sdb1: 100G
 sdb2:900G


#格式化:
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2


#创建目录
mkdir -p /var/opt/gitlab/ 
mkdir -p /opt/gitlab/ 


#挂载分区
vim /etc/fstab
/dev/sdb1   /var/opt/gitlab/  ext4  defaults 0 0
/dev/sdb2   /opt/gitlab/  ext4  defaults 0 0

#挂载
mount -a

1.3 使用RPM包方式安装GitLab-ce

bash
yum install curl policycoreutils openssh-server openssh-clients postfix  -y
bash
yum install https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-17.1.1-ce.0.el7.x86_64.rpm -y

1.4 初始化GitLab

1.4.1 备份配置文件

cd /etc/gitlab
cp gitlab.rb gitlab.rb-bak

1.4.2 根据需求,修改默认配置文件

仅供参考优化后的配置文件,关闭了一些Prometheus的各种exporter

我这里添加了邮件SMTP的相关配置

bash
[root@code gitlab]# sed -n '/^[^#]/p' gitlab.rb

external_url 'http://code.srebro.cn' ## GitLab访问地址

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "ttc@srebro.cn"
gitlab_rails['smtp_password'] = "xxxxxxxxxxxxxh"
gitlab_rails['smtp_domain'] = "exmail.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'ttc@srebro.cn'
gitlab_rails['gitlab_email_display_name'] = 'ttc技术管理委员会'
gitlab_rails['gitlab_email_reply_to'] = 'ttc@srebro.cn'

prometheus['enable'] = false
prometheus['monitor_kubernetes'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
prometheus_monitoring['enable'] = false

1.5 启动GitLab

重新配置应用程序

[root@gitlab gitlab]#  gitlab-ctl reconfigure

查看GitLab 状态

[root@code gitlab]# gitlab-ctl status

run: gitaly: (pid 4124) 2303s; run: log: (pid 3490) 2443s
run: gitlab-kas: (pid 3695) 2427s; run: log: (pid 3710) 2425s
run: gitlab-workhorse: (pid 4096) 2304s; run: log: (pid 3841) 2337s
run: logrotate: (pid 3379) 2456s; run: log: (pid 3387) 2455s
run: nginx: (pid 4113) 2304s; run: log: (pid 3908) 2330s
run: postgresql: (pid 3530) 2433s; run: log: (pid 3541) 2432s
run: puma: (pid 5051) 403s; run: log: (pid 3776) 2349s
run: redis: (pid 3409) 2450s; run: log: (pid 3418) 2449s
run: sidekiq: (pid 5030) 409s; run: log: (pid 3811) 2342s

1.6 访问GitLab

1.6.1 使用域名访问

为了方便测试 使用EXTERNAL_URL 中配置的地址来访问GitLab, 配置电脑本地hosts解析cod.srebro.cn域名到IP172.22.33.203,不单独配置外部NGINX使用

1.6.2 随机密码访问

初始密码,系统会随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中, 查看随机密码并使用 root 用户名登录

注意:出于安全原因,24 小时后,/etc/gitlab/initial_root_password 会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码。

image-20240306195652130

1.6.2 修改root默认密码

用户设置偏好设置密码

1.7 其他优化

1.7.1 修改GitLab默认语言 为中文

用户设置偏好设置语言设置

1.7.2 GitLab 版本升级

  • rpm : rpm -Uvh gitlab-ce-<版本号>.el7.x86_64.rpm
  • docker: 替换新版本镜像

WARNING

注意跨版本升级需要先升级到当前版本的最后一个版本; 升级前需要备份配置文件,​​数据库(PostgreSQL)​,代码仓库与附件​

1.7.3 GitLab 配置邮箱

bash
#编辑配置文件,追加如下内容,根据自己的邮箱配置
[root@code gitlab]# vim  gitlab.rb

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "ttc@srebro.cn"
gitlab_rails['smtp_password'] = "xxxxxxxxxxxxxh"
gitlab_rails['smtp_domain'] = "exmail.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'ttc@srebro.cn'
gitlab_rails['gitlab_email_display_name'] = 'ttc技术管理委员会'
gitlab_rails['gitlab_email_reply_to'] = 'ttc@srebro.cn'
  • 启动 ruby console,测试邮件发送
bash
gitlab-rails console

#输入命令发邮件
Notify.test_email('admin@srebro.cn', 'Message Subject', 'Message Body').deliver_now

  • 查看邮件收件情况

  • 修改默认的新用户注册校验配置,让新用户注册时通过邮件确认

[修改admin用户邮箱地址]

有一个注意点,需要修改admin用户的邮箱地址,不然无法发送邮件出来

管理中心查看最新用户修改admin 用户邮箱地址

最近更新

采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟