gitlab 搭建使用

1. 硬件要求

##CPU 
4 核心500用户 
8 核心1000用户 
##内存 
4 G内存500用户 
8 G内存1000用户

2. 下载 链接

3. 安装依赖

yum -y install curl openssh-server postfix wget

4. 安装gitlab组件

yum -y localinstall gitlab-ce-15.9.3-ce.0.el7.x86_64.rpm

5. 修改配置文件

cat > /etc/gitlab/gitlab.rb <<EOF
external_url 'http://gitlab.tom.com'
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false
EOF

#使用gitlab.rb文件重新生成子配置文件

gitlab-ctl reconfigure

#重启所有gitlab相关文件.

gitlab-ctl restart

#查看gitlab状态

]# gitlab-ctl status
run: gitaly: (pid 31042) 128s; run: log: (pid 30218) 355s
run: gitlab-kas: (pid 31141) 118s; run: log: (pid 30464) 344s
run: gitlab-workhorse: (pid 31147) 117s; run: log: (pid 30632) 294s
run: logrotate: (pid 31157) 117s; run: log: (pid 30173) 367s
run: nginx: (pid 31853) 2s; run: log: (pid 30647) 289s
run: postgresql: (pid 31208) 96s; run: log: (pid 30397) 348s
run: puma: (pid 31197) 97s; run: log: (pid 30575) 306s
run: redis: (pid 31202) 97s; run: log: (pid 30194) 361s
run: sidekiq: (pid 31219) 95s; run: log: (pid 30599) 300s

6. 登录gitlab页面

]# cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.Password: fIElM6At23WAaLvZBiy2lzFvOd8Vz8ch96gw3Y0S+HU=# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

登录用户:root

密码:/etc/gitlab/initial_root_password文件中的Password字段值

7. 汉化

8. 修改密码

9. 关闭注册功能

10. 使用案例

步骤:

1. 创建dev开发组
2. 添加用户tom
3. 用户组添加用户
4. 创建1个项目happy_app并关联dev组

10.1. 创建dev开发组

10.2. 创建用户

10.3. 关联用户到用户组

10.4. 创建项目并关联组

10.5. 普通用户登录gitlab

]# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSZ9RvDQpNBc9Hz0vJ8vzQ/bE5Nu7bH9o+krxItSGHvwCCkuducUve0vweyEk52iZRUb3OYAH9Z5GDTFZ+br5sipT/wg8z7FW8g+EhDAOc9adsHSU+hDluKykyw6qLnQ4rX9tIZh6KXrZCiLneRBtfESg+MQvxNYZ8qiAqmiyq3tuz1Wue8KJ/869GvYVoPYDNYt+HBUmSJb9aagVkndXvHvex6ECgRTDrdzoXfpd5HrIlgtvxT46+RnZX5pFiDyUd0K7k9T99VxLQU5oUFUh+YA9glpojleKlOduUa1ld6Lno+StQdAOhKsUYiz31UKwJ5IBE0XCx5OTnG372p0Ib root@jenkins

把用户主机上/root/.ssh/id_rsa.pub 里面的公钥复制到下图1的位置,如果没有此文件,先ssh-keygen生成

已经有远程仓库的代码,需要切换远程仓库地址

#把origin重命名为old-origin
git remote rename origin old-origin
#添加新的origin地址
git remote add origin git@gitlab.tom.com:dev/happy-app.git
#推送所有分支
git push -u origin --all
#推送所有tag
git push -u origin --tags

上面报错是因为此用户权限是developer,无法创建分支,可以用管理员账户把tom用户权限调整为owner.

已经可以看到代码的分支,标签,提交记录

11. 如果gitlab管理员用户名密码忘记,重置方法

gitlab-rake "gitlab:password:reset"

12. gitlab备份与恢复

12.1. gitlab服务配置文件备份

/etc/gitlab目录备份

12.2. 备份gitlab里面的内容

gitlab_rails['manage_backup_path'] = true   		#是否可以指定备份目录
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #备份目录
gitlab_rails['backup_archive_permissions'] = 0600   #备份的压缩包权限
gitlab_rails['backup_keep_time'] = 604800   		#备份保留多久 7天]# egrep -v '^$|^#' /etc/gitlab/gitlab.rb
external_url 'http://gitlab.tom.com'
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_archive_permissions'] = 0600
gitlab_rails['backup_keep_time'] = 604800
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false#重新生成子配置文件
]# gitlab-ctl reconfigure]# gitlab-ctl restart#手动执行备份命令
]# gitlab-backup create

12.3. gitlab恢复数据

先停止写入数据

[root@gitlab ~]# gitlab-ctl stop puma
ok: down: puma: 0s, normally up
[root@gitlab ~]# gitlab-ctl sidekiq
ok: down: sidekiq: 1s, normally up

执行恢复命令

注意:执行恢复命令的时候,备份文件的名字去除_gitlab_backup.tar,只要前面的部分

 ~]# ll /var/opt/gitlab/backups/
-rw------- 1 git git 512000 Jul 12 08:40 1720744836_2024_07_12_15.9.3_gitlab_backup.tar~]# gitlab-backup restore BACKUP=/var/opt/gitlab/backups/1720744836_2024_07_12_15.9.3

12.4. 定时任务备份

#创建备份目录
mkdir -p /backup/gitlab/{code,conf}
chown -R git.root /backup/gitlab/code
#--------------------------------------------------------------
#修改git配置文件中备份文件夹路径
[root@gitlab ~]# egrep -v '^$|^#' /etc/gitlab/gitlab.rb
external_url 'http://gitlab.tom.com'
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/backup/gitlab/code/"
gitlab_rails['backup_archive_permissions'] = 0600
gitlab_rails['backup_keep_time'] = 604800
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false#重新生成子配置文件
]# gitlab-ctl reconfigure
]# gitlab-ctl restart
#--------------------------------------------------------------
#自动备份脚本
]# cat /server/scripts/backup-gitlab.sh 
#!/bin/bash
#1.备份gitlab数据
gitlab-backup create    
#2.备份gitlab配置和密码文件
tar zcf /backup/gitlab/conf/gitlab-conf-$(date +%F).tar.gz   /etc/gitlab/
#3. 传输到备份服务器
#rsync xxx#增加定时任务
* 03 * * * /bin/bash /server/scripts/backup-gitlab.sh  &> /backup/gitlab/back.log

13. gitlab证书配置

为了防止内网渗透,将gitlab服务的访问添加了ssl,具体步骤如下:
1.gitlab配置https(请先做个快照.)
nginx['enable' ] = true
nginx['client_max_body_size' ]= '250m '
nginx['redirect_http_to_https' ]= true
nginx['redirect_http_to_https _port' ] = 443
nginx['ssl_certificate' ] = "path/ key.crt"
nginx['ssl_certificate_key'] = "path/ key.key"
nginx['ssl_ciphers' ] ="ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256"
nginx['ssl_prefer_server_ciphers']= "on"
nginx['ssl_protocols']= "TLSv1.2"
nginx['ssl_session_cache' ] = "builtin:1000shared:sSL: 10m"
nginx['ssl_session_timeout']= "5m"核心:
nginx['ssl_certificate' ] = 用于指定证书 .crt .pem
nginx['ssl_certificate_key']  = 用于指定私钥 .key 2.gitlab重新配置子项目
gitlab-ctl reconfigure
重启:
gitlab-ctl restart

14. 优化配置

优化暂时不用组件 (选作)
#关闭目前不使用的组件 默认都是true 修改为 false 
#关闭prometheus
prometheus['enable'] = false
prometheus['monitor_kubernetes'] = false
#关闭alertmanger
alertmanager['enable'] = false
#关闭exporter 如果需要prometheus监控 则可以打开。
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_monitor['enable'] = false
#gitlab_exporter
prometheus_monitoring['enable'] = false
grafana['enable'] = false

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/377042.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Python的Turtle模块绘制小猪佩奇

引言 在编程学习中&#xff0c;Turtle是一个非常有趣且实用的模块&#xff0c;尤其适合初学者。它允许用户通过控制一个可以在屏幕上移动的小海龟来绘制图形&#xff0c;从而直观地理解坐标、角度和循环等概念。本篇博客将介绍如何使用Python的Turtle模块来绘制一个可爱的卡通…

PostgreSQL日志文件配置,记录所有操作记录

为了更详细的记录PostgreSQL 的运行日志&#xff0c;我们一般需要修改PostgreSQL 默认的配置文件&#xff0c;这里整理了一些常用的配置 修改配置文件 打开 PostgreSQL 配置文件 postgresql.conf。该文件通常位于 PostgreSQL 安装目录下的 data 文件夹中。 找到并修改以下配…

IDEA实现热部署

什么是热部署&#xff1f; 热部署&#xff08;Hot Deployment&#xff09;是指在应用程序运行过程中&#xff0c;无需停止整个应用程序或重新启动服务器&#xff0c;就能够部署新的代码、资源或配置文件&#xff0c;使其立即生效。这种部署方式有助于提高开发效率和系统的可用性…

【边缘计算网关教程】4.西门子PPI协议对接

前景回顾&#xff1a;【边缘计算网关教程】3.创建第二个流程-CSDN博客 目录 1. 硬件连接 2. PLC串口参数 2.1. 打开STEP7软件 2.2. 查看通信参数 3. 网关设置 3.1. PLC连接设置 3.2. 数据点位设置 3.3. 测试 西门子 PPI 协议 适配PLC&#xff1a;S7-200 西门子S7-200 PLC…

【RHCE】综合实验0710综合实验

题目&#xff1a; 主服务器192.168.244.130 防火墙允许服务的放行&#xff1a; selinux放行 [rootlocalhost ~]# ll -Z /nfs/rhce 总用量 4 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 8 7月 10 16:52 index.html -rw-r--r--. 1 nobody nobody system_…

推荐一款uniapp拖动验证码插件

插件地址&#xff1a;易盾验证码 - DCloud 插件市场 具体使用方式访问插件地址自行获取

企业网三层架构

企业网三层架构&#xff1a;是一种层次化模型设计&#xff0c;旨在将复杂的网络设计分成三个层次&#xff0c;每个层次都着重于某些特定的功能&#xff0c;以提高效率和稳定性。 企业网三层架构层次&#xff1a; 接入层&#xff1a;使终端设备接入到网络中来&#xff0c;提供…

什么叫图像的双边滤波,并附利用OpenCV和MATLB实现双边滤波的代码

双边滤波&#xff08;Bilateral Filtering&#xff09;是一种在图像处理中常用的非线性滤波技术&#xff0c;主要用于去噪和保边。它在空间域和像素值域上同时进行加权&#xff0c;既考虑了像素之间的空间距离&#xff0c;也考虑了像素值之间的相似度&#xff0c;从而能够有效地…

西安明德理工学院师生莅临泰迪智能科技开展参观见习活动

为进一步深化校企合作&#xff0c;落实高校应用型人才培养。7月8日&#xff0c;西安明德理工学院与广东泰迪智能科技股份有限公司联合开展学生企业见习活动。西安明德理工学院金融产业学院副院长刘敏、金融学专业负责人张莉萍、金融学专业教师曹艳飞、赵浚妤、泰迪智能科技董事…

板级调试小助手(2)ZYNQ自定义IP核构建属于自己的DDS外设

一、前言 在上期文章中讲述了小助手的系统结构和原理。在PYNQ的框架开发中&#xff0c;我们一般可以将PL端当做PS端的一个外设&#xff0c;通过读写寄存器的方式来操作外设的功能&#xff0c;就类似于在开发ARM和DSP中操作外设一样&#xff0c;不同时的是&#xff0c;我们可以通…

【实战】Nginx+Keepalived高可用部署,后端Tomcat

目录 一、下载Tomcat安装包 二、安装Tomcat 三、 运行测试Tomcat是否安装成功 四、开放8080端口 五、Tomcat服务脚本 一、环境说明&#xff1a; 三、安装Keepalived 3.1、主机安装配置 实战目的是为了Nginx和后端的Tomcat都可以实现高可用&#xff0c;防止单节点故障的…

AWS-S3实现Minio分片上传、断点续传、秒传、分片下载、暂停下载

文章目录 前言一、功能展示上传功能点下载功能点效果展示 二、思路流程上传流程下载流程 三、代码示例四、疑问 前言 Amazon Simple Storage Service&#xff08;S3&#xff09;&#xff0c;简单存储服务&#xff0c;是一个公开的云存储服务。Web应用程序开发人员可以使用它存…

方便好用的C#.Net万能工具库Masuit.Tools

文章目录 简介开发环境安装使用特色功能示例代码1. 检验字符串是否是Email、手机号、URL、IP地址、身份证号等2.硬件监测(需要管理员权限&#xff0c;仅支持Windows&#xff0c;部分函数仅支持物理机模式)3.html的防XSS处理&#xff1a;4.整理Windows系统的内存&#xff1a;5.任…

IAR全面支持芯驰科技E3系列车规MCU产品E3119/E3118

中国上海&#xff0c;2024年7月11日 — 全球领先的嵌入式系统开发软件解决方案供应商IAR与全场景智能车芯引领者芯驰科技宣布进一步扩大合作&#xff0c;最新版IAR Embedded Workbench for Arm已全面支持芯驰科技的E3119/E3118车规级MCU产品。IAR与芯驰科技有着悠久的合作历史&…

docker私有仓库harbor安装

Harbor默认安装 下载harbor https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-offline-installer-v2.11.0.tgz 目前要求docker版本&#xff0c;docker 20.10.10-ce &#xff0c;和docker-compose 1.18.0 查看 docker-compose版本 docker-compose --ver…

【精品资料】模块化数据中心解决方案(33页PPT)

引言&#xff1a;模块化数据中心解决方案是一种创新的数据中心设计和部署策略&#xff0c;旨在提高数据中心的灵活性、可扩展性和效率。这种方案通过将数据中心的基础设施、计算、存储和网络资源封装到标准化的模块中&#xff0c;实现了快速部署、易于管理和高效运维的目标 方案…

Jetpack Compose学习记录(一)

目录 前言控件实时预览Modifierremember状态提升 前言 学了一段时间的Compose&#xff0c;不得不说声明式UI比原生的开发效率快很多&#xff0c;而且Compose也是Google现在主推的开发模式&#xff0c;可以动态化地更改ui&#xff0c;相比于databinding对数据和布局进行绑定。C…

51单片机4(reg52头文件介绍)

一、头文件作用 #include<reg52.h> #include"reg52.h" 1、在代码中&#xff0c;引用头文件&#xff0c;它的实际意义就是将这个头文件里面的全部内容放到引用的这个文件的位置上&#xff0c;免去我们每次编译&#xff0c;编写同类程序都要将头文件中的语句&…

部署运维之二:虚拟化

摘要&#xff1a; 在21世纪初的曙光中&#xff0c;虚拟化技术悄然萌芽&#xff0c;标志着计算领域的一次革命性飞跃。这一时期&#xff0c;通过引入虚拟化技术&#xff0c;业界实现了在单一物理服务器之上并行运行多个虚拟机的壮举&#xff0c;每个虚拟机均构筑起一个隔离而独…

JVM:SpringBoot TomcatEmbeddedWebappClassLoader

文章目录 一、介绍二、SpringBoot中TomcatEmbeddedWebappClassLoader与LaunchedURLClassLoader的关系 一、介绍 TomcatEmbeddedWebappClassLoader 是 Spring Boot 在其内嵌 Tomcat 容器中使用的一个类加载器&#xff08;ClassLoader&#xff09;。在 Spring Boot 应用中&#…