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

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												配置文件中:8082
										gitaly:			9236

到此在虚拟机ubuntu16.04部署gitlab及gitlab的基本操作记录完毕。

还有一点需要提醒的是:在虚拟机上的ubuntu服务器只能用运行此虚拟机的主机访问gitlab页面(虚拟机我配置的是NAT模式),同局域网的其他主机没法访问这个虚拟机,但是在实际搭建gitlab服务器时也不会用虚拟机去搭建,因此不会出现此问题。至于为什么虚拟机使用NAT网络时,同局域网别的主机没法访问的问题我也不太清楚,对网络相关的知识欠缺,如果有大佬还请多多指教!


http://www.kler.cn/a/9517.html

相关文章:

  • 【算法一周目】双指针(2)
  • 【大数据学习 | HBASE高级】rowkey的设计,hbase的预分区和压缩
  • C语言 | Leetcode C语言题解之第556题下一个更大元素III
  • Postman上传图片如何处理
  • 山泽光纤HDMI线:铜线的隐藏力量
  • 深度学习之卷积问题
  • 原油期货是什么?原油期货交易盈利技巧有哪些?
  • MyBatis动态SQL教程:灵活处理复杂SQL场景,提升性能与可维护性
  • 二叉树练习题(递归展开图详解哦)
  • 21. 合并两个有序链表(Java)
  • 坦克大战第一阶段代码
  • 电子学会2023年3月青少年软件编程python等级考试试卷(一级)真题,含答案解析
  • 6、springboot快速使用
  • USB在虚拟机中不显示以及没有访问权限
  • C程序设计-小学生计算机教学辅助系统(四则运算)
  • 磁盘移臂调度算法
  • 【Bug解决】AttributeError: ‘DataParallel‘ object has no attribute ‘XXX‘
  • 【store商城项目08】删除用户的收获地址
  • 建龙转债上市价格预测 - 配了38张道氏,希望不要乱跌
  • unity--半圆包围posiotion
  • springboot+jwt令牌简单登录案例
  • 【校招VIP】南邮的计算机研究生面试,竟然说开发岗只是增删改查,而且项目QPS并发量数量过于吓人
  • Spring Security 6 的权限授权验证失败
  • node开通阿里云短信验证服务,代码演示 超级详细
  • 浅谈全局视角下的设计模式
  • VIM 编辑器使用教程