ubuntu16.04搭建gitlab
ubuntu16.04搭建gitlab
目录
- ubuntu16.04搭建gitlab
- 一、在虚拟机ubuntu16.04安装gitlab
- 二、配置gitlab
- 三、使用gitlab
- 四、踩坑记录
工作中遇到需要在远端服务器搭建gitlab,耗时4天,踩坑无数,特此开个虚拟机再次搭建一次gitlab并记录供以后参考!
背景:为保证服务器安全,远端服务器在内网,本地只能通过指定外网IP和端口去访问远端服务器
一、在虚拟机ubuntu16.04安装gitlab
1.本地下载ubuntu16.04的gitlab包(2021-06-01)(ubuntu版本最好能和gitlab版本对应)
https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/xenial/gitlab-ce_13.10.5-ce.0_amd64.deb
或者
https://download.csdn.net/download/studyingdda/87581776

2.ssh登录ubuntu,把下载好的gitlab包传到ubuntu


3.安装依赖包,运行命令后选择Internet Site
sudo apt-get install curl openssh-server ca-certificates postfix

4.“System mail name”输入服务器name

5.安装gitlab,运行命令,等待安装完成,安装完成如下图
sudo dpkg -i gitlab-ce_13.10.5-ce.0_amd64.deb

二、配置gitlab
1.配置gitlab ’external_url‘和端口号, ’external_url‘配置成服务器的IP,端口号默认80
sudo vim /etc/gitlab/gitlab.rb


2.使gitlab配置生效,配置成功如下图
sudo gitlab-ctl reconfigure

三、使用gitlab
1.通过配置的IP及端口进入到gitlab页面,对密码进行重置

2.重置密码完毕后进行登录,用户名是root,密码是刚刚重置的密码

3.登录成功之后如下图所示

接下来创建一个项目,创建一个用户,以这个用户使用git实现推拉文件到服务器
创建用户有两种方式:1.root管理员创建 2.个人到此gitlab页面进行注册,然后请求root审批。此处演示第一种。
4.创建用户:姓名:张三;账号:zhangsan;密码:zhangsan;邮箱: zhangsan@163.com





5.创建项目







6.使用张三用户登录

7.配置SSHKeys


8.使用PuTTYgen生成SSHKeys,并增加到gitlab



9.在git配置用户名和邮箱
“git config --global user.name+用户名”
“git config --global user.email+你的邮箱”

10.将项目中“Clone with HTTP”拷贝

11.使用“TortoiseGit”进行Git克隆到本地



12.随意创建一个文件,推送到服务器






gitlab常用命令
重启配置,并启动gitlab服务 sudo gitlab-ctl reconfigure
启动所有gitlab sudo gitlab-ctl start
重新启动GitLab sudo gitlab-ctl restart
停止所有gitlab sudo gitlab-ctl stop
查看服务状态 sudo gitlab-ctl status
查看Gitlab日志 sudo gitlab-ctl tail
修改默认的配置文件 sudo vim /etc/gitlab/gitlab.rb
检查gitlab gitlab-rake gitlab:check SANITIZE=true --trace
四、踩坑记录
踩坑记录:
1.刚开始创建了一个名为“git”的用户,使用这个用户去安装gitlab,在执行’
sudo gitlab-ctl reconfigure‘发生与’git同名冲突‘类的报错解决方法:删掉名为’git‘的用户,用别的用户再装gitlab
2.删除git用户时需要先卸载gitlab,在网上找了很多卸载gitlab的方法都卸载不干净
解决方法:我从根目录全局搜索gitlab相关的目录及文件全部删除后才算是卸载干净
3.因为我是通过外网IP及9902端口远程ssh登录服务器的,因此在配置gitlab第1步中的IP使用的是服务器的外网IP,不能直接使用内网IP(内网IP我无法访问)
4.在gitlab配置完毕登录页面时遇到使用80端口进去是Apache2的页面
解决方法:Apache2和gitlab的80端口冲突,我修改了Apache的端口号
5.在gitlab配置完毕登录页面时进去是gitlab502错误的页面
解决方法:网上找到很多解释:内存不够和端口冲突等,我排除内存不够的问题,因为远端服务器的外网只开放了很少的端口,因此我猜测是gitlab默认需要很多端口,因此我把所有gitlab运行时的线程在gitlab的配置文件对应找了一遍,把其中涉及到的端口都请服务器端同事开启了,之后又重装了一次gitlab就能够正常访问了。我整理的涉及到的端口我会在下方贴出来:

gitlab涉及到的任务 线程号 sudo netstat -nultp显示端口号 配置文件中涉及到的端口号
alertmanager: (pid 24236) 1s alertmanager: 9093/9094 配置文件中:9093
gitaly: (pid 24270) 0s 配置文件中:8075/9075/9236
gitlab-exporter: (pid 24334) 0s ruby: 9168 配置文件中:9168
gitlab-workhorse: (pid 24336) 0s gitlab-workho: 9229 配置文件中:8080/9229
grafana: (pid 24371) 1s grafana-serve: 3000 配置文件中:25/9090/3000
logrotate: (pid 24491) 0s 配置文件中:
nginx: (pid 24497) 1s nginx: 8060 配置文件中:5050/
node-exporter: (pid 24565) 0s node_exporter: 9100 配置文件中:9100
postgres-exporter: (pid 24571) 0s postgres_expo: 9187 配置文件中:9187
postgresql: (pid 24584) 0s 配置文件中:5432
prometheus: (pid 24586) 0s prometheus: 9090 配置文件中:9229/9090
puma: (pid 24650) 1s 配置文件中:8080
redis: (pid 24658) 0s 配置文件中:6379
redis-exporter: (pid 24664) 1s redis_exporte: 9121 配置文件中:9121
sidekiq: (pid 24674) 0s 配置文件中:8082gitaly: 9236
到此在虚拟机ubuntu16.04部署gitlab及gitlab的基本操作记录完毕。
还有一点需要提醒的是:在虚拟机上的ubuntu服务器只能用运行此虚拟机的主机访问gitlab页面(虚拟机我配置的是NAT模式),同局域网的其他主机没法访问这个虚拟机,但是在实际搭建gitlab服务器时也不会用虚拟机去搭建,因此不会出现此问题。至于为什么虚拟机使用NAT网络时,同局域网别的主机没法访问的问题我也不太清楚,对网络相关的知识欠缺,如果有大佬还请多多指教!
相关文章:
ubuntu16.04搭建gitlab
ubuntu16.04搭建gitlab 目录ubuntu16.04搭建gitlab一、在虚拟机ubuntu16.04安装gitlab二、配置gitlab三、使用gitlab四、踩坑记录工作中遇到需要在远端服务器搭建gitlab,耗时4天,踩坑无数,特此开个虚拟机再次搭建一次gitlab并记录供以后参考&…...
SSMP综合案例
案例实现方案分析 实体类开发————使用Lombok快速制作实体类 Dao开发————整合MyBatisPlus,制作数据层测试类 Service开发————基于MyBatisPlus进行增量开发,制作业务层测试类 Controller开发————基于Restful开发,使用PostM…...
让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)
让你的作品更出色—— 词云Word Cloud的制作方法(基于python) 本文目录: 一、词云的简介 二、 实现原理和流程 1、制作词云流程图 2、词云实现原理 三、 实现词云的方式 1、安装词云相关模块库 2、WordCloud库 3、stylecloud库 四、总结 一、词…...
axios请求拦截器
在vue项目中,通常使用axios与后台进行数据交互,axios是一款基于promise封装的库, axios特性: 1、axios 是一个基于promise的HTTP库,支持promise所有的API 2、浏览器端/node端(服务器端)都可以…...
四个常见的Linux技术面问题
刚毕业要找工作了,只要是你找工作就会有面试这个环节,那么在面试环节中,有哪些注意事项值得我的关注呢?特别是专业技术岗位,这样的岗位询问一般都是在职的工程师,如何在面试环节更好地理解面试官的问题&…...
有什么适合程序员查资料的网站
当今信息爆炸的时代,程序员每天需要花费大量的时间查找相关技术文档、知识和工具。但是,因为互联网上的内容如此之多,选择合适的网站可以成为一项艰巨的任务。在本文中,我们将介绍几个适合程序员查资料的网站,并详细阐…...
(七)手把手带你搭建精美简洁的个人时间管理网站—实现登录与注册的前端代码【源码】
🌟所属专栏:献给榕榕 🐔作者简介:rchjr——五带信管菜只因一枚 😮前言:该专栏系为女友准备的,里面会不定时发一些讨好她的技术作品,感兴趣的小伙伴可以关注一下~👉文章简…...
Day933.如何将设计最终落地到代码 -系统重构实战
如何将设计最终落地到代码 Hi,我是阿昌,今天学习记录的是关于如何将设计最终落地到代码的内容。 这要将各个组件拆分到独立的模块工程中,最终将架构设计落地到代码中。 组件化架构重构 5 个关键的步骤分别是: 设计守护解耦移动…...
209. 长度最小的子数组
209. 长度最小的子数组 力扣题目链接(opens new window) 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入…...
【数据结构与算法】查找(Search)【详解】
文章目录查找查找概论一、查找的基本概念顺序表查找一、定义二、算法有序表查找一、折半查找二、插值查找三、斐波那契查找线性索引查找一、稠密索引二、分块索引三、倒排索引二叉树排序与平衡二叉树一、二叉排序树1、定义2、二叉排序树的常见操作3、性能分析二、平衡二叉树1、…...
一文学会 Spring MVC 表单标签
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
如何在 Windows10 下运行 Tensorflow 的目标检测?
前言 看过很多博主通过 Object Detection 实现了一些皮卡丘捕捉,二维码检测等诸多特定项的目标检测。而我跟着他们的案例来运行的时候,不是 Tensorflow 版本冲突,就是缺少什么包,还有是运行官方 object_detection_tutorial 不展示…...
【jvm系列-04】精通运行时数据区共享区域---堆
JVM系列整体栏目 内容链接地址【一】初识虚拟机与java虚拟机https://blog.csdn.net/zhenghuishengq/article/details/129544460【二】jvm的类加载子系统以及jclasslib的基本使用https://blog.csdn.net/zhenghuishengq/article/details/129610963【三】运行时私有区域之虚拟机栈…...
ctfshow愚人杯 re easy_pyc wp
一、反编译题目pyc文件 题目下载解压后是一个.pyc文件,那就去反编译看看呗,因为之前用过uncompyle6,直接去命令行执行 uncompyle6 -o ez_re.py ez_re.pyc 得到ez_re.py源码一份~ 但是这里我用uncompyle6反编译的结果不知道为啥就出来很多奇…...
Ubuntu18.04 系统中本地代码上传至Gitlab库
主要步骤如下: 设置SSH Key 上传项目 1.创建SSH Key 每次上传可重新设置一个SSH Key或者使用已有SSH Key (1)创建SSH Key 创建一个新的SSH Key,终端输入以下指令,其中 “xxxxxx163.com” 是邮箱账号: s…...
Leetcode.1665 完成所有任务的最少初始能量
题目链接 Leetcode.1665 完成所有任务的最少初始能量 Rating : 1901 题目描述 给你一个任务数组 tasks,其中 tasks[i] [actuali, minimumi]: actuali是完成第 i 个任务 需要耗费 的实际能量。minimumi是开始第 i 个任务前需要达到的最低能…...
【C++笔试强训】第一天
选择题 解析:在for循环的循环条件(y 123) && (x < 4)中 ,&& 表示逻辑与,从左向右判断两边条件是否成立,只有当两边的条件都为真时,这条语句才为真。左边y 123是赋值语句,一直为真&…...
【网络安全软件】上海道宁与Cybereason为您提供未雨绸缪的攻击保护,终结对端点、整个企业以及网络上任何角落的网络攻击
Cybereason可收集 计算机网络内任何活动方面的数据 如运行当中的程序 被用户访问的文件以及 员工及任何获授权使用网络中的计算机人的 键盘输入和鼠标移动情况 Cybereason提供 即时结束网络攻击的精确度 在计算机、移动设备、服务器和云中 到战斗移动的任何地方 一、开…...
基于RK3568的Android11 适配 MIPI 屏幕
文章目录 前言一、mipi接口是什么?二、原理图三、屏幕点亮流程四、屏幕关键参数1.General Specification2. Power on/off sequence3.Timing五、屏幕初始化序列改写如何把原厂给的数据转换为设备需要的时序dcs小知识:初始化时序:退出时序:总结前言 在本小节会学习到如何适配…...
Ubuntu安装python
CentOS 安装 Python3 没什么坑,按照步骤一步步来就可以了。 但 Ubuntu 安装 Python3 的坑却不少,这里总结一下,避免以后继续踩坑。 我用的是 ubuntu16.04,安装最新版本的 Python3.8.3 第1步:安装编译环境 安装之前…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
