虚拟机Ubuntu 22.04上搭建GitLab操作步骤

      GitLab是仓库管理系统,使用Git作为代码管理工具。GitLab提供了多个版本,包括社区版(Community Edition)和企业版(Enterprise Edition)。实际应用场景中要求CPU最小4核、内存最小8GB,非虚拟环境。

      以下是在虚拟机中安装社区版步骤

      1.为了可以在局域网内其他电脑上可访问GitLab服务,需在ubuntu中设置ip:首先关闭ubuntu虚拟机;然后:打开Oracle VM VirtualBox管理器:依次点击:设置、网络、网卡2:勾选"启用网络连接";连接方式选择"桥接网卡";高级中混杂模式:选择"全部允许",点击OK,如下图所示:

      2.安装依赖项:postfix是可选的,这里没有安装,在安装postfix过程中,会出现一个配置窗口,选择"Internet Site"并输入服务器的主机名(hostname)作为邮件服务器名称。这将允许GitLab发送电子邮件通知

sudo apt update
sudo apt install -y curl openssh-server ca-certificates postfix

      3.安装GitLab:

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install gitlab-ce

      执行完第一条语句后,输出结果如下图所示:The repository is setup! You can now install packages

      第二条语句是安装gitlab-ce,输出结果如下图所示:

      4.防火墙ufw常用命令如下所示:

sudo ufw status # 查看防火墙当前状
sudo ufw enable # 启用ufw,默认情况下,ufw是禁用的
sudo ufw disable # 禁用ufw
sudo ufw reload # 重启ufw

      启用防火墙,允许80和443端口,执行如下命令:在配置GitLab之前,需要确保防火墙规则

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

      执行完如上命令,再次查看防火墙状态,结果如下所示:

      5.配置GitLab:使用sudo vim打开/etc/gitlab/gitlab.rb,将external_url的值调整为http://gitlab.fengbingchun.com,保存并退出该文件,重新配置GitLab,执行如下命令:

sudo gitlab-ctl reconfigure

      执行完后若没有错误,会显示"gitlab Reconfigured!",如下图所示:

      6.重新启动GitLab服务,执行如下命令,结果如下图所示:

sudo gitlab-ctl restart

      7.访问GitLab Web界面:

      (1).打开Web浏览器并输入服务器IP地址或主机名:http://<Server-IP-Address-or-Hostname> 或 http://localhost 

      (2).GitLab Web界面的用户名是root密码存储在:/etc/gitlab/initial_root_password ,如下图所示:

      注意

      (1).登入GitLab Web页面的第一件事就是更改密码,/etc/gitlab/initial_root_password文件中的密码24小时后将被清理

      (2).进入gitlab后:"Check your sign-up restrictions",点击"Deactivate",禁止其他人注册账号

      (3).192.168.18.215为ubuntu的ip,其他同一网段的电脑输入此地址也可登入GitLab

      (4).clone代码时:使用ip地址而不能是url,还未定位原因

git clone http://192.168.18.215/root/test.git # 使用ip地址clone
git clone http://gitlab.fengbingchun.com/root/test.git # 不能使用url clone

      8.启用Let's Encrypt SSL:未成功

      (1).安装letsencrypt,执行如下命令:

sudo apt install letsencrypt

      (2).再次打开/etc/gitlab/gitlab.rb,调整的内容如下:letsencrypt['enable']文件中已存在,取消注释即可

external_url 'https://gitlab.fengbingchun.com'
letsencrypt['enable'] = true

      (3).保存退出该文件,重新配置GitLab时,一直报错:"Acme::Client::Error::Timeout: letsencrypt_certificate[gitlab.fengbingchun.com] (letsencrypt::http_authorization line 6) had an error: Acme::Client::Error::Timeout: acme_certificate[staging] (letsencrypt::http_authorization line 43) had an error: Acme::Client::Error::Timeout: Acme::Client::Error::Timeout" ,原因还未知

      9.常用命令如下:

sudo gitlab-rake gitlab:check # 验证GitLab配置
sudo gitlab-rake 'gitlab:password:reset[root]' # 重置GitLab root密码
sudo gitlab-ctl status # 查看GitLab状态
sudo gitlab-ctl stop # 停止GitLab
sudo gitlab-ctl restart # 重新启动GitLab
sudo gitlab-ctl start # 启动GitLab服务
sudo systemctl list-units --type=service | grep gitlab # 确定GitLab服务的名称
sudo systemctl status gitlab-runsvdir # 查看GitLab服务的状态
sudo systemctl is-enabled gitlab-runsvdir # 检查是否设置了开机禁用GitLab服务:应该返回disabled
sudo systemctl stop gitlab-runsvdir # 停止当前运行的GitLab服务
sudo systemctl disable gitlab-runsvdir # 禁用GitLab服务:在下次启动时不会自动运行

      10.卸载GitLab:先停止GitLab服务,依次执行如下命令

sudo gitlab-ctl stop # Shutdown Gitlab
sudo gitlab-ctl uninstall # Remove Gitlab services
sudo gitlab-ctl cleanse # Clean any data generated by usage of the package
sudo gitlab-ctl remove-accounts # Remove any Gitlab accounts on your system
sudo dpkg -P gitlab-ce # sudo apt-get purge gitlab-ce # Remove the package 
sudo rm -rf /opt/gitlab /etc/gitlab /var/opt/gitlab # Remove all Gitlab paths
sudo apt update
sudo apt-get autoremove 
sudo apt-get clean

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

R语言ggplot2包绘制高端堆积柱状图

数据和代码获取&#xff1a;请查看主页个人信息&#xff01;&#xff01;&#xff01; 关键词“高端堆积柱状图” 大家好&#xff0c;今天我将介绍如何使用ggplot2包绘制高端堆积柱状图。 本次绘图灵感来源于下面这篇文章&#xff0c;之所以复现这张图&#xff0c;有这么几个原…

查看docker中各个容器所占的资源

要查看Docker中的每个容器占用的资源&#xff0c;可以使用docker stats命令。这个命令提供了容器的实时资源使用统计&#xff0c;包括内存使用情况。以下是如何使用docker stats命令的示例&#xff1a; docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsa…

Nginx企业级负载均衡:技术详解系列(14)—— 账户认证功能

你好&#xff0c;我是赵兴晨&#xff0c;97年文科程序员。 你有没有听说过Nginx的账户认证功能&#xff1f;这可不只是一个技术问题&#xff0c;它关系到我们上网时的安全和便利。就像家里需要一把钥匙才能进们一样&#xff0c;Nginx的账户认证功能就是确保有只有授权的人才能…

Linux-在centos7中为普通用户配置sudo认证

目录 前言一、sudo是什么&#xff1f;二、配置sudo三、测试 前言 本篇文章介绍如何在centos7中为普通用户配置sudo认证 一、sudo是什么&#xff1f; sudo是一个命令&#xff0c;其作用是为普通用户以临时管理员&#xff08;root&#xff09;的身份去执行一条命令。 例如&…

ConvNeXt(CVPR 2022)论文解读

paper&#xff1a;A ConvNet for the 2020s official implementation&#xff1a;https://github.com/facebookresearch/ConvNeXt third-party implementation&#xff1a;https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/convnext.py 背景 在…

面试杂谈k8s

其实看我之前的博客&#xff0c;k8s刚有点苗头的时候我就研究过&#xff0c;然后工作的时候间接接触 也自己玩过 但是用的不多就忘记了&#xff0c;正苦于不知道写什么&#xff0c;水一篇 用来面试应该是够了 支持云应用开发、运行与运维一体化的云应用平台软件应运而生 k8s核…

JVM 指针压缩

运用java内存对齐填充&#xff0c;对java内存进行8字节划分&#xff0c;java对象指针映射到每个划分区域上&#xff0c;使得4个字节&#xff08;32位&#xff09;表示2^32个地址&#xff0c;从而使4个字节指针映射32G内存空间。 1.为什么进行指针压缩&#xff1a; jvm从32位变…

【DSP】xDAIS算法标准

1. 简介 在安装DSP开发支持包时&#xff0c;有名为 “xdais_7_21_01_07”文件夹。xDAIS全称: TMS320 DSP Algorithm Standard(算法标准)。39条规则&#xff0c;15条指南。参考文档。参考文章。 2. 三个层次 3.接口 XDAIS Digital Media。编解码引擎。VISA&#xff08;Video&…

18.Redis之哨兵

1.哨兵机制的介绍 通过自动化的手段,来解决主节点挂了的问题~~ 哨兵机制, 是通过独立的 进程 来体现的.和之前 redis-server 是不同的进程!! redis-sentine| 不负责存储数据,只是对其他的 redis-server 进程起到监控的效果~~ 通常哨兵节点,也会搞一个集合~~(多个哨兵节点构成的…

汽车MCU虚拟化--对中断虚拟化的思考(2)

目录 1.引入 2.TC4xx如何实现中断虚拟化 3.小结 1.引入 其实不管内核怎么变&#xff0c;针对中断虚拟化无非就是上面两种&#xff0c;要么透传给VM&#xff0c;要么由Hypervisor统一分发。汽车MCU虚拟化--对中断虚拟化的思考(1)-CSDN博客 那么&#xff0c;作为车规MCU龙头…

基于ES安装IK分词插件

前言 IK分词器插件是为Elasticsearch设计的中文分词插件&#xff0c;由Elasticsearch的官方团队之外的开发者medcl开发。它主要针对中文文本的分词需求&#xff0c;提供了较为准确的中文分词能力。以下是IK分词器插件的一些特点&#xff1a; 智能分词&#xff1a;IK分词器采用基…

thinkphp6 自定义的查询构造器类

前景需求&#xff1a;在查询的 时候我们经常会有一些通用的&#xff0c;查询条件&#xff0c;但是又不想每次都填写一遍条件&#xff0c;这个时候就需要重写查询类&#xff08;Query&#xff09; 我目前使用的thinkphp版本是6.1 首先自定义CustomQuery类继承于Query <?p…

戴尔科技:一盆冷水浇醒了AIPC

这年头&#xff0c;只要沾上英伟达的公司&#xff0c;不论美股还是大A,都跟着鸡犬升天几轮过&#xff0c;但昨晚英伟达蒸发1064亿美元&#xff0c; 跟着遭罪的也不少&#xff0c;有没有一夜惊魂梦醒的感觉&#xff1f; 今天我们来说说——戴尔科技。 昨晚戴尔科技大跌5.18%&a…

R语言ggplot2包绘制网络地图

重要提示&#xff1a;数据和代码获取&#xff1a;请查看主页个人信息&#xff01;&#xff01;&#xff01; 载入R包 rm(listls()) pacman::p_load(tidyverse,assertthat,igraph,purrr,ggraph,ggmap) 网络节点和边数据 nodes <- read.csv(nodes.csv, row.names 1) edges…

网页截图并添加美观外壳:无需PS轻松实现的方法

在日常生活和工作中&#xff0c;我们经常需要截取网页的屏幕快照&#xff0c;以便于分享、保存或用于其他用途。尽管许多人认为使用Photoshop&#xff08;PS&#xff09;是最佳选择&#xff0c;但实际上&#xff0c;有许多更简单、快捷的方法可以帮助我们实现这一目标&#xff…

时间控件,开始时间和结束时间限制

****开始时间必须小于结束时间 如果选择了结束时间&#xff0c;开始时间必须小于结束时间 //开始时间<el-date-pickerstyle"width:190px;"v-model"searchForm.clsjdate"placeholder"请选择日期"type"date"value-format"yyyy-…

【学习笔记】数据结构(二)

线性表 文章目录 线性表1、线性结构2、线性表2.1 线性表定义2.2 类型定义2.2 顺序存储结构&#xff08;Sequence List&#xff09;2.3 链式存储结构2.3.1 单链表2.3.2 循环链表2.3.3 双链表2.3.4 单链表、循环链表、双向链表的时间效率比较2.3.5 链式存储结构优缺点 2.4 顺序表…

可用于嵌入式的解释器调研对比,及lua解释器介绍

嵌入式不一定只能用C! ---------------------------------------------------------------------------------------手动分割线-------------------------------------------------------------------------------- 本文章参考了以下文章&#xff1a; 这里是引用 ------------…

城市之旅:使用 LLM 和 Elasticsearch 简化地理空间搜索(二)

我们在之前的文章 “城市之旅&#xff1a;使用 LLM 和 Elasticsearch 简化地理空间搜索&#xff08;一&#xff09;”&#xff0c;在今天的练习中&#xff0c;我将使用本地部署来做那里面的 Jupyter notebook。 安装 Elasticsearch 及 Kibana 如果你还没有安装好自己的 Elasti…

字符串 | 字符串匹配之 KMP 算法以及 C++ 代码实现

目录 1 为什么使用 KMP&#xff1f;2 什么是 next 数组&#xff1f;2.1 什么是字符串的前后缀&#xff1f;2.2 如何计算 next 数组&#xff1f; 3 KMP 部分的算法4 完整代码 &#x1f608;前言&#xff1a;这篇文章比较长&#xff0c;但我感觉自己是讲明白了的 1 为什么…