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

虚拟机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

相关文章:

  • 黑客团伙利用Python、Golang和Rust恶意软件袭击印国防部门;OpenAI揭秘,AI模型如何被用于全球虚假信息传播? | 安全周报0531
  • 《异常检测——从经典算法到深度学习》29 EasyTSAD: 用于时间序列异常检测模型的工业级基准
  • 深入分析 Android Activity (二)
  • 软考系统集成项目管理工程师第7章思维导图发布
  • 探索AI去衣技术中的反射应用
  • FreeRTOS基础(三):动态创建任务
  • 面试题:计算机网络中的七四五是什么?
  • pytorch学习笔记3
  • Vue:现代前端开发的首选框架-【高级特性篇】
  • JAVA:异步任务处理类CompletableFuture让性能提升一倍
  • 如何设置手机的DNS
  • 基于tensorflow和NasNet的皮肤癌分类项目
  • SQL—DQL(数据查询语言)之小结
  • 【TensorFlow深度学习】LeNet-5卷积神经网络实战分析
  • 2024华为OD机试真题-机场航班调度-C++(C卷D卷)
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • PHP的Ev教程三(Periodic watcher)
  • Python学习笔记 字符串拼接
  • React的组件模式
  • Sass 快速入门教程
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 大整数乘法-表格法
  • 搞机器学习要哪些技能
  • 排序算法之--选择排序
  • 前端设计模式
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 昨天1024程序员节,我故意写了个死循环~
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (转)ORM
  • (转)四层和七层负载均衡的区别
  • *** 2003
  • **PHP分步表单提交思路(分页表单提交)
  • .apk文件,IIS不支持下载解决
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net core 6 集成和使用 mongodb
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET开源项目介绍及资源推荐:数据持久层
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @Transactional类内部访问失效原因详解
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [ IO.File ] FileSystemWatcher
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [c++] 自写 MyString 类
  • [C++]模板与STL简介
  • [GXYCTF2019]禁止套娃
  • [halcon案例2] 足球场的提取和射影变换