主题
一、Gitlab版本控制部署
1.1 环境信息
软件/系统名称 | 版本 | 下载地址 | 备注 |
---|---|---|---|
OpenEuler | 22.03 LTS SP4 | ||
Gitlab-ce | gitlab-ce-17.1.1 | https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-17.1.1-ce.0.el7.x86_64.rpm | RPM包安装方式 |
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
自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码。
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 用户邮箱地址