当前位置: 首页 > news >正文

Centos7.9部署Gitlab-ce-16.9

一、环境信息

软件/系统名称版本下载地址备注
Centos77.9.2009https://mirrors.nju.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso
gitlab-cegitlab-ce-16.9.1https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-16.9.1-ce.0.el7.x86_64.rpmRPM包安装方式

二、安装前配置

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/:备份文件生成的目录
#准备1块1T的硬盘fdisk /dev/sdb   划分两个分区出来sdb1: 100Gsdb2:900G格式化:
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2挂载分区
vim /etc/fstab
/dev/sdb1   /var/opt/gitlab/  ext4  defaults 0 0
/dev/sdb2   /opt/gitlab/  ext4  defaults 0 0#创建目录
mkdir -p /var/opt/gitlab/ 
mkdir -p /opt/gitlab/ 

二、安装GitLab

# 安装依赖,并启动ssh、防火墙开启相应端口、postfix
[root@gitlab ~]# yum install curl policycoreutils openssh-server openssh-clients postfix  -y# 安装
[root@gitlab ~]# yum install https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-16.9.1-ce.0.el7.x86_64.rpm -y

image-20240306205400861

三、初始化GitLab

3.1 备份配置文件

[root@gitlab ~]# cd /etc/gitlab
[root@gitlab gitlab]# cp gitlab.rb gitlab.rb-bak

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

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

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

[root@code gitlab]# sed -n '/^[^#]/p' gitlab.rbexternal_url 'http://code.srebro.cn'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

四、启动GitLab

重新配置应用程序

[root@gitlab gitlab]#  gitlab-ctl reconfigure

查看GitLab 状态

[root@code gitlab]# gitlab-ctl statusrun: 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

五、访问GitLab

5.1 随机密码访问

使用EXTERNAL_URL 中配置的地址来访问GitLab

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

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

image-20240306195652130

5.2 修改root默认密码

用户设置,偏好设置,密码

image-20240306195803004

六、其他优化

6.1 修改GitLab默认语言 为中文

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

image-20240306200118949

6.2 配置使用HTTPS登录GitLab

待补充…

6.3 使用LDAP登录GitLab

gitlab.rb 配置如下

gitlab_rails['ldap_enabled'] = true
#gitlab_rails['prevent_ldap_sign_in'] = false###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'main:label: 'LDAP'host: '172.16.10.180'port: 389uid: 'cn'  #用户在LDAP中的唯一标识字段bind_dn: 'cn=admin,dc=srebro,dc=cn'password: 'xxxxx'encryption: 'plain' # "start_tls" or "simple_tls" or "plain"verify_certificates: true  #是否验证证书active_directory: false   #是否是Active Directory服务器allow_username_or_email_login: true  #是否允许使用用户名或电子邮件登录lowercase_usernames: false # #是否将用户名转换为小写base: 'ou=people,dc=srebro,dc=cn'  #在LDAP中搜索用户的基础DNgroup_base: 'ou=group,dc=srebro,dc=cn'user_filter: '(memberOf=cn=gitlab,ou=group,dc=srebro,dc=cn)'  # 根据条件进行组过滤
EOS

ldap 还需配置add_memberof_module.ldif ,具体参考: https://www.cnblogs.com/panther1942/p/17067317.html

配上ldap 组织架构图: dc=srebro,dc=cn

创建一个groupofNames 得组织,DN 为: cn=gitlab,ou=group,dc=srebro,dc=cn

image-20240306211513911

七、参考

  • https://www.cnblogs.com/mingerlcm/p/12588785.html【GitLab 主要目录】
  • https://www.jianshu.com/p/9a2f414e52b7 【gitlab 磁盘空间不足问题处理】
  • https://www.cnblogs.com/panther1942/p/17067317.html【gitlab+openldap使用memberof筛选登录用户】
http://www.lryc.cn/news/435480.html

相关文章:

  • 卷积神经网络(一)
  • 加密与安全_ sm-crypto 国密算法sm2、sm3和sm4的Java库
  • VR 尺寸美学主观评价-解决方案-现场体验研讨会报名
  • 网络基础入门指南(三)
  • 大众萨克森:SNP助力汽车制造智能化,实现SAP S/4HANA系统成功升级
  • 20240912 每日AI必读资讯
  • Linux之Shell命令
  • 前端Vue框架实现html页面输出pdf(html2canvas,jspdf)
  • SAP Fiori UI5-环境搭建-2022-2024界面对比
  • 二百六十三、Java——IDEA项目打成jar包,然后在Linux中运行
  • 【OpenCV2.2】图像的算术与位运算(图像的加法运算、图像的减法运算、图像的融合)、OpenCV的位运算(非操作、与运算、或和异或)
  • ChatGPT 3.5/4.0使用手册:解锁人工智能的无限潜能
  • E32.【C语言 】练习:蓝桥杯题 懒羊羊字符串
  • Linux 网络基础概念
  • 【题目】MySQL选择题
  • 自然语言处理系列六十三》神经网络算法》LSTM长短期记忆神经网络算法
  • 亚马逊IP关联及其解决方案
  • Definition and Detection of Defects in NFT Smart Contracts论文解读、复现
  • Neo4j图数据库
  • k8s API资源对象
  • GB/T28181规范解读之编码规则详解
  • Vue封装的过度与动画(transition-group、animate.css)
  • 免费云服务器申请教程
  • Spring Cloud Gateway中的常见配置
  • SelectDB 多计算集群核心设计要点揭秘与场景应用
  • Docker 清理和查看镜像与容器占用情况
  • 如何在Android 12 aosp系统源码中添加三指下滑截图功能
  • 使用SQL语句查询MySQL数据表
  • 【AI绘画、换脸、写作、办公】从零开始:使用AIStarter启动器发布AI应用
  • eeprom使用 cubemx STM32F407ZGT6【IIC驱动AT24C02】