Gitlab代码管理工具安装配置

前言:

没有真正的证书与域名建议使用http+ip的方式在内网使用,不建议使用假的域名地址

一、安装前配置

#更改主机域名
hostnamectl set-hostname gitlab.dome.com
bash
#配置hosts 底部添加下面内容
vim /etc/hosts
############################
ip  gitlab.dome.com
#############################下载安装所需配置
yum install -y curl policycoreutils openssh-server openssh-clients postfix
#设置postfifix开机自启(postfifix支持gitlab发信功能)。
systemctl enable postfix && systemctl start postfix#获取gpg秘钥
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#运行内存大于4G 硬盘大于20G否则测试环境都搭建不了会报错

二、下载安装gitlab

#三选其一 按照第一种进行的测试
#1、配置gitlab yum源
vim /etc/yum.repos.d/gitlab-ce.repo
############gitlab-ce.repo###########################
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
###################################################
#更新yum源
yum makecache
#查询是否有gitlab-ce的yum安装包
yum list gitlab-ce
#安装gitlab-ce
yum -y install gitlab-ce#2、下载gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm#3、安装gitlab-ce
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum -y install gitlab-ce

三、手动配置ssl证书

#创建证书存放文件
mkdir -p /etc/gitlab/ssl
#创建私有密钥
openssl genrsa -out "/etc/gitlab/ssl/gitlab.dome.com.key" 2048
#进入存放文件
cd /etc/gitlab/ssl
#查看创建的私有密钥
ll
#创建私有证书
openssl req -new -key "/etc/gitlab/ssl/gitlab.dome.com.key" -out "/etc/gitlab/ssl/gitlab.dome.com.csr"
###################创建密钥信息####################You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN          CN  ##国家
State or Province Name (full name) []:SX      BJ   ##省份
Locality Name (eg, city) [Default City]:XA    BJ   ##城市  
Organization Name (eg, company) [Default Company Ltd]:    ##空格
Organizational Unit Name (eg, section) []:                ##空格
Common Name (eg, your name or your server's hostname) []:gitlab.example.com    
Email Address []:123456@qq.com                 ##邮箱地址记住等会要登录
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456                ## 密码
An optional company name []:                  ##空格
###################################################

创建CRT签署证书

安装完成,创建好了ssl密钥和证书
在ssl目录下ll
可以看到ssl密钥和证书
利用ssl密钥和证书创建签署证书

#创建crt签署证书
openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.dome.com.csr" -signkey "/etc/gitlab/ssl/gitlab.dome.com.key" -out "/etc/gitlab/ssl/gitlab.dome.com.crt"ll /etc/gitlab/ssl/

用openssl签署pem证书

openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048

更改ssl下的所有证书的权限

chmod 600 *

四、配置证书到gitlab证书中

vim /etc/gitlab/gitlab.rb 
external_url 'https://gitlab.dome.com'      ###改为https开头
nginx['redirect_http_to_https'] = true           ###取消#号更改注释并为true  1397行
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.dome.com.crt"     ###更改路径
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.dome.com.key"     ###更改路径
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"   ##更改路径###   # Path to dhparams.pem, eg.  /etc/gitlab/ssl/dhparams.pem

更改完之后初始化命令执行

#初始化gitlab-ce    如果初始化报错不成功则重启之后再进行初始化
gitlab-ctl reconfigure
#重启gitlab-ce
gitlab-ctl restartgitlab-ctl restart sidekiq

对nginx进行操作

cd /var/opt/gitlab/nginx/conf/
#编辑gitlab-http.conf文件
vim gitlab-http.conf
###########gitlab-http.conf#####################
server_name gitlab.example.com;    #在这个下面添加下面语句
rewrite ^(.*)$ https://$host$1 permanent;      ####需要添加的配置 注:(配置在80端口)
################################

五、重启gitlab

#重启gitlab
gitlab-ctl restart

六、在windows系统里面操作

在C:\Windows\System32\drivers\etc\hosts 添加以下
##############hosts###########################
192.168.90.218        gitlab.dome.com
##############################################
#验证
ping 192.168.90.218浏览器登录 gitlab    机器配置要大于4g内存,否则很容易启动不了,报502
浏览器输入:https://gitlab.dome.com

七、查看初始密码

#初始管理员账号:root
#查看初始密码 
cat /etc/gitlab/initial_root_password

中文设置

 

问题处理

若没有真正的证书,建议不要用opssl签署的证书来配置https 协议 gitlab 域名 建议直接用 http协议 否则jenkins引用gitlab会报错一直无法通过用户名密码验证或者密钥验证

gitlab改成http协议

#1、修改配置文件gitlab.rb
vim /etc/gitlab/gitlab.rb
#############gitlab.rb 内容只有下面一条其他的可以自己加不过ssl相关需要注释掉##############
external_url 'http://IP地址'
################################################################################
#2、重新获取配置文件
gitlab-ctl reconfigure
#3、重启gitlab
gitlab-ctl restart#访问地址
http://IP地址

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

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

相关文章

Stowaway搭建隧道打CFS内网靶场

目录 渗透带出主机阶段 先把我们的服务端上传到kali ​先把我们的客户端上传到目标机 客户端去连接我们的kali机端口去上线 出现admin,上线成功 detail相当于msf的sessions​ 和msf差不多功能,但是我们用它主要是搞隧道代理 抓发的 ​开启socks…

Pytorch中分类回归常用的损失和优化器

Pytorch中分类回归常用的损失和优化器 在机器学习和深度学习中,分类任务和预测任务(回归任务)有不同的常用损失函数和优化器。下面将详细介绍这些常用的损失函数和优化器。 分类任务 1. 损失函数 交叉熵损失(Cross-Entropy Los…

07-7.1.1 查找的基本概念

👋 Hi, I’m Beast Cheng 👀 I’m interested in photography, hiking, landscape… 🌱 I’m currently learning python, javascript, kotlin… 📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

Elasticsearch 自定义评分和脚本评分

在Elasticsearch中,默认的评分机制(如BM25算法)在大多数情况下能够提供良好的搜索结果排序。然而,在某些特定场景下,我们可能需要根据业务需求对搜索结果进行更精细化的排序。这时,Elasticsearch提供了自定…

C++ 进程间通信举例

C++进程通信 C++ 中的进程间通信(IPC)可以通过多种方式实现,包括管道、消息队列、共享内存和信号等。以下是每种方法的详细示例和说明。 总结 上述示例展示了 C++ 中几种常见的进程间通信方法。根据不同的应用场景,可以选择合适的 IPC 机制: 管道(Pipe):适用于父子进…

序列化是什么 为什么要序列化 何时序列化

目录 序列化是什么 为什么要用序列化 什么时候用序列化 序列化是什么 序列化(Serialization)是指将数据结构或对象的状态信息转换为可以存储或传输的形式的过程,比如将Java对象转化成字节流(二进制流)。这个状态信息包括对象的字段(包括基本类型和对象引用)以及对象的类…

Android | RxJava 中的调度器(Schedulers)的主要作用是什么?

RxJava 中的调度器(Schedulers)的设计主要是为了帮助开发者有效地管理和控制异步操作的执行线程,以提高应用程序的响应性和用户体验。虽然防止卡顿是其中一个重要的方面,但调度器的作用不仅限于此。 主要作用包括: 响…

[终端安全]-4 移动终端之硬件架构安全

1 移动终端硬件架构 上图图展示了典型移动终端硬件架构,包括应用处理器(AP)、基带处理器(BP)以及各类共享组件和外设,所有组件通过AXI总线(和APB桥)连接在一起。以下分别介绍基于整…

HTML+CSS+JavaScript入门学习

目录 1. 前言2. HTML2.1 HTML简介2.2 HTML标签 3. CSS3.1 CSS知识整理及总结3.2 CSS之flex布局 4. JavaScript4.1 JavaScript知识整理及总结1-基础篇4.2 JavaScript知识整理及总结2-进阶篇 1. 前言 本文主要采用转载的形式,偶尔发现了一个比较不错的博客站点&#…

WPS+Python爬取百度之星排名

运行效果 手动拉取 https://www.matiji.net/exam/contest/contestdetail/146 如果手动查找,那么只能通过翻页的方式,每页10行(外加一行自己)。 爬取效果预览 本脚本爬取了个人排名和高校排名,可以借助WPS或MS Offi…

华为OSPF配置DR和BDR与指定DR

基础配置 <Huawei>sys #进入配置模式 Enter system view, return user view with CtrlZ. [Huawei]un in en #关闭报文弹窗 Info: Information center is disabled. [Huawei]sys R1 #设备名更改为R1 [R1]int g0/0/0 …

调度系统揭秘(下):调度算法与架构设计

文章目录 一、调度算法1.1、广度优先:1.2、深度优先1.3、总结广度优先搜索&#xff08;BFS&#xff09;深度优先搜索&#xff08;DFS&#xff09; 二、架构设计2.1、Master/Slave架构优劣分析 2.2、Leader架构优劣分析 2.3、总结 一、调度算法 在调度系统中&#xff0c;调度算…

.hmallox勒索病毒:全面防御策略

引言 近年来&#xff0c;随着网络技术的飞速发展&#xff0c;勒索病毒成为网络安全领域的一大威胁&#xff0c;其中.hmallox勒索病毒以其高度的隐蔽性和破坏性&#xff0c;尤为引人注目。这种病毒通过加密用户计算机中的重要文件&#xff0c;并以支付赎金作为解密条件&#xff…

MyBatis中二级缓存的配置与实现原理

大家好&#xff0c;我是王有志&#xff0c;一个分享硬核 Java 技术的金融摸鱼侠&#xff0c;欢迎大家加入 Java 人自己的交流群“共同富裕的 Java 人”。 上一篇文章《MyBatis中一级缓存的配置与实现原理》中&#xff0c;我们已经掌握了 MyBatis 一级缓存的配置&#xff08;虽然…

vue3实现echarts——小demo

版本&#xff1a; 效果&#xff1a; 代码&#xff1a; <template><div class"middle-box"><div class"box-title">检验排名TOP10</div><div class"box-echart" id"chart1" :loading"loading1"&…

配置管理工具 Puppet:安装、配置和编写简单的 Puppet Manifest

配置管理工具 Puppet&#xff1a;安装、配置和编写简单的 Puppet Manifest Puppet 是一种流行的开源配置管理工具&#xff0c;它允许你自动化和管理服务器配置。通过 Puppet&#xff0c;你可以确保服务器以一致和可重复的方式配置&#xff0c;从而提高效率、减少错误并降低管理…

CDGA考试真题(二)

1. 文件和内容管理是针对存储在关系型数据库之外的数据和信息的采集、存储、访问和使用过程的管理。重点在于保持文件和其他非结构化或半结构化信息的完整性,并使这些信息能够被访问。以下哪项不属于此目标:(D) A、确保能够高效地采集和使用非结构化的数据和信息B、确保结构…

VSCode常用快捷键和功能

格式化代码&#xff1a; ShiftAltF JS中自动输入console.log()的方法&#xff1a; 先在vscode中&#xff0c;找到文件 > 首选项 > 配置用户代码片段&#xff0c;在弹出的下拉框处方输入javascript.json&#xff0c;复制下面的代码&#xff0c;覆盖原来的代码&#xff0…

Linux操作系统中逻辑卷的缩减

流程&#xff1a;第一步先是要缩减逻辑卷的文件系统。 第二步就是要去缩减逻辑卷的物理边界。 注意事项&#xff1a; 1.逻辑卷要处于卸载状态&#xff0c; 2.建议先备份数据 3.在缩减逻辑卷的时候&#xff0c;要注意xfs文件系统的逻辑卷是不支持直接进行缩减的。 4.在缩减…

选择结构作业题(五.2)

阿尔法编程第五章(31--50) 31.有 3 个整数 a,b,c,由键盘输入,输出其中最大的数。 // 请在此处编写 C 程序 #include<stdio.h>int max(int a,int b) {if(a>b)return a;else if(a<b)return b; } int main(){int a,b,c;scanf("%d %d %d",&a,&am…