ubuntu16.04搭建gitlab

Posted studyingdda

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu16.04搭建gitlab相关的知识,希望对你有一定的参考价值。

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

ubuntu搭建GitLab

目前Git是最流行的代码管理工具,git是分布式的,在多人协作,分支开发的项目上有其独特的优势。github上如果想建私有仓库是需要收取费用的,开源的GItLab允许我们搭建Git私有服务器。

下面介绍一下如何在自己的ubuntu服务器上搭建Gitlab。GitLab是一款开源的软件,在用基本的功能时时免费的,当需要提供额外的服务时需要收取费用。

下载最新版的gitlab,需要的机器配置:

ubuntu 14.0以上

服务器内存需要4G以上

gitlab运行比较消耗内存,4g一下服务器安装了也无法运行

 

安装gitlab可以去官方网站中查看教程,里面的教程也比较详细

https://about.gitlab.com/installation/#ubuntu

 

首先安装依赖包

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

 

下载gitlab

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash 

sudo apt-get install gitlab-ce

由于gitlab是从国外服务器下载,需要FQ,不然会非常慢,或者直接不成功

这个时候需要用到国内的镜像,https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/

网站里有详细的设置说明,在里面选择相应的服务器操作系统和版本就行

这里需要注意:

在文档里将deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xxxx main写入/etc/apt/sources.list.d/gitlab-ce.list文件中

在运行过程中如果不起作用,就替换成将内容写入/etc/apt/sources.list.d/gitlab_gitlab-ce.list中就可以。如果没有gitlab-ce.list或gitlab_gitlab-ce.list就手动建一个就可以。

最后在运行sudo apt-get install gitlab-ce就可以正常下载安装了

 

配置:

gitlab安装完成后就可以访问了

配置文件在:/etc/gitlab/gitlab.rb
如果无法正常启动服务,客户端访问报502等
可以修改端口号等一些信息,根据具体报错在网上有相应的配置方法予以解决
配置完成后运行
sudo gitlab-ctl reconfigure进行重新配置
 
常用命令:
sudo gitlab-ctl status 查看运行状态
gitlab-ctl restart 重启
gitlab-ctl tail 查看日志
gitlab-ctl reconfigure 重新装载配置

 

以上是关于ubuntu16.04搭建gitlab的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu16.04搭建LAMP开发环境

ubuntu 16.04 nfs服务的搭建

ubuntu 16.04 nfs服务的搭建

Ubuntu 16.04 以太坊开发环境搭建

ubuntu16.04下搭建织梦源码网站步骤

ubuntu16.04搭建docker私有仓库