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

ubuntu16.04搭建gitlab_第1张图片

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

ubuntu16.04搭建gitlab_第2张图片

ubuntu16.04搭建gitlab_第3张图片

3.安装依赖包,运行命令后选择Internet Site

sudo apt-get install curl openssh-server ca-certificates postfix

ubuntu16.04搭建gitlab_第4张图片

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

ubuntu16.04搭建gitlab_第5张图片

5.安装gitlab,运行命令,等待安装完成,安装完成如下图

sudo dpkg -i gitlab-ce_13.10.5-ce.0_amd64.deb

ubuntu16.04搭建gitlab_第6张图片

二、配置gitlab

1.配置gitlab ’external_url‘和端口号, ’external_url‘配置成服务器的IP,端口号默认80

sudo vim /etc/gitlab/gitlab.rb

ubuntu16.04搭建gitlab_第7张图片

ubuntu16.04搭建gitlab_第8张图片

2.使gitlab配置生效,配置成功如下图

sudo gitlab-ctl reconfigure

ubuntu16.04搭建gitlab_第9张图片

三、使用gitlab

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

ubuntu16.04搭建gitlab_第10张图片

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

ubuntu16.04搭建gitlab_第11张图片

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

ubuntu16.04搭建gitlab_第12张图片

接下来创建一个项目,创建一个用户,以这个用户使用git实现推拉文件到服务器

创建用户有两种方式:1.root管理员创建 2.个人到此gitlab页面进行注册,然后请求root审批。此处演示第一种。

4.创建用户:姓名:张三;账号:zhangsan;密码:zhangsan;邮箱: [email protected]

ubuntu16.04搭建gitlab_第13张图片

ubuntu16.04搭建gitlab_第14张图片

ubuntu16.04搭建gitlab_第15张图片

ubuntu16.04搭建gitlab_第16张图片

ubuntu16.04搭建gitlab_第17张图片

5.创建项目

ubuntu16.04搭建gitlab_第18张图片

ubuntu16.04搭建gitlab_第19张图片

ubuntu16.04搭建gitlab_第20张图片

ubuntu16.04搭建gitlab_第21张图片

ubuntu16.04搭建gitlab_第22张图片

ubuntu16.04搭建gitlab_第23张图片

ubuntu16.04搭建gitlab_第24张图片

6.使用张三用户登录

ubuntu16.04搭建gitlab_第25张图片

7.配置SSHKeys

ubuntu16.04搭建gitlab_第26张图片

ubuntu16.04搭建gitlab_第27张图片

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

ubuntu16.04搭建gitlab_第28张图片

ubuntu16.04搭建gitlab_第29张图片

ubuntu16.04搭建gitlab_第30张图片

9.在git配置用户名和邮箱

“git config --global user.name+用户名”

“git config --global user.email+你的邮箱”

ubuntu16.04搭建gitlab_第31张图片

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

ubuntu16.04搭建gitlab_第32张图片

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

ubuntu16.04搭建gitlab_第33张图片

ubuntu16.04搭建gitlab_第34张图片

ubuntu16.04搭建gitlab_第35张图片

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

ubuntu16.04搭建gitlab_第36张图片

ubuntu16.04搭建gitlab_第37张图片

ubuntu16.04搭建gitlab_第38张图片

ubuntu16.04搭建gitlab_第39张图片

ubuntu16.04搭建gitlab_第40张图片

ubuntu16.04搭建gitlab_第41张图片

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就能够正常访问了。我整理的涉及到的端口我会在下方贴出来:

ubuntu16.04搭建gitlab_第42张图片

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

你可能感兴趣的:(gitlab,ubuntu,服务器)