ubuntu16.04搭建gitlab

news/2024/11/15 3:15:18/

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网络时,同局域网别的主机没法访问的问题我也不太清楚,对网络相关的知识欠缺,如果有大佬还请多多指教!


http://www.ppmy.cn/news/37355.html

相关文章

redis --- 常用key命令

目录 一、常用key命令 1.1、keys *: 1.2、exists key: 1.3、type key: 1.4、del key: 1.5、unlink key 1.6、ttl key 1.7、expire key 秒钟 1.8、move key dbindex【0-15】 1.9、select dbindex 1.10、dbsize 1.11、flushdb【慎用】 1.1…

AOP工作流程

AOP工作流程3,AOP工作流程3.1 AOP工作流程流程1:Spring容器启动流程2:读取所有切面配置中的切入点流程3:初始化bean流程4:获取bean执行方法验证容器中是否为代理对象验证思路步骤1:修改App类,获取类的类型步骤2:修改MyAdvice类,不增强步骤3:运行程序步骤…

10个华为华为交换机常用的Python脚本,网络工程师收藏!

华为交换机常用的Python脚本可以用于自动化网络管理和监控,可以帮助网络管理员提高工作效率和降低操作风险。 以下是一些常用的Python脚本示例: 1、登录华为交换机 from netmiko import ConnectHandlerhuawei_switch {device_type: huawei,ip: 192.1…

Python __all__变量用法

事实上,当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。因此,如果我们不想模块文件中的某个成员被引入到其它文件中使用,可以在其…

【python可视化】汇总中国的省市图,并且带经纬度边界

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言1.安装basemap2.下载中国的省市.shp文件3. 代码前言 汇总中国的省市图,并且带经纬度边界,用的是mpl_toolkits工具库,pip 和c…

基于Spring Boot垃圾分类网站

文章目录 项目介绍主要功能截图:前台首页垃圾详情垃圾图谱个人中心后台用户管理垃圾分类管理员管理垃圾管理垃圾分类管理垃圾图谱管理部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都…

c++11 标准模板(STL)(std::unordered_multiset)(十一)

定义于头文件 <unordered_set> template< class Key, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator<Key> > class unordered_multiset;(1)(C11 起)namespace pmr { …

--编写一个存储过程,输入一个日期,返回该日期与当下日期的时间差,如果该差是负的,则提示该日期已经过去XX天,不然提示距离该日期还有xx天

--创建存储过程&#xff0c;一个输入参数&#xff0c;一个输出参数 create or replace procedure sp_minus(i_date varchar2,o_minus out varchar2) is --声明一个变量&#xff0c;用来存放异常 v_errm varchar2(200); begin --判断输入格式 if length(i_date)<>8 th…