Ubuntu20.4搭建Gitlab并上传项目
阿里云学生白嫖2C4G服务器
在这里:阿里云高校学生计划 (aliyun.com),早上八点之前可零元购两个月的ECS,我便用来学习Gitlab+Gitlab Runner+Devops等等
GitLab的安装与登入
环境准备
进入阿里云服务器控制台,找到实例,我们可以看到自己服务器的详细信息如下:
我们利用SecureCRT远程连接公网IP,linux服务器的默认用户名为root,初次创建服务器需要通过重置实例密码生成。我们能SSH连接服务器是因为默认在安全组上开放了22号端口。
安装GitLab
参考:Ubuntu19.1 中 GitLab 的安装配置与卸载
- 开启防火墙
1 |
|
接下来我们添加几个端口:
1 |
|
- 安装依赖项
1 |
|
接下来会出现以下画面:
可能会让你设置一个邮箱:
1 |
|
打开HTTP和SSH端口:
1 |
|
可能会在安装依赖项的时候出现以下问题:
只需要换源即可,因为我们用的是阿里云,服务器里就已经自动换成了阿里云镜像了。
- 安装Gitlab
官方下载地址太慢了,这里我们换源:
1、首先信任 GitLab 的 GPG 公钥:
1 |
|
2、打开vi:
1 |
|
3、将下面的内容粘贴进去
1 |
|
4、安装 gitlab-ce:
1 |
|
5、打开 sshd 和 postfix 服务
1 |
|
6、更新配置
1 |
|
- 配置GitLab
1 |
|
找到external_url = 'http://git.example.com'
并将其修改成external_url = 'http://公网ip:4399'
公网IP就是服务器中的公网ip,而不是私网IP,因为我们本机是访问不了私网IP的。4399就是访问端口,可以自由配置,如果只填IP的话,端口默认为8080。
建议配置一个自定的端口,但一定要求是没有被占用的端口,可以事先通过
lsof -i:<port>
来查看port是否被占用。
1 |
|
重启gitlab服务,可以注意看restart后有没有启动unicorn服务,如果没有将很可能出现502错误。(我就是这个问题)
- 阿里云安全组添加端口
来到阿里云安全组配置,进入配置规则:
手动添加4399端口,源直接填0.0.0.0/0,这是保证我们使用IP:PORT登入的时候不会出现
同时我们也要添加
80端口
,这是为TCP开放的。
如果添加了80端口和4399端口安全组也无法直接登入,需要查看是否为防火墙问题:阿里云服务器 80 端口设置了安全组还是无法访问
1 |
|
添加好80和4399端口后保存
1 |
|
查看是否添加成功:
1 |
|
登入Gitlab
在地址栏输入公网ip:4399
可直接访问GitLab,如果成功进入则会先让你设置密码。之后就能正常登入使用了,默认登入账户是root
502错误排查
8080与unicorn默认端口冲突
如果配置gitlab时使用的是8080默认端口,而且unicorn也开启了,就会出现两者端口冲突的现象。
1 |
|
按下esc
进入命令模式,利用/
查询制定字符串,按回车确定,n向下翻动,N向上翻动。
找到以下两处配置,取消注释,并修改端口:
1 |
|
保存并重启
1 |
|
服务器防火墙未开启端口
1 |
|
将gitlab服务的端口添加进去,需要删除就输入ufw delete allow 4399
等待时长过短
这种情况适用于等待较长时间后出现502界面的。
依旧打开gitlab配置文件:
1 |
|
找到以下两项并修改如下:
1 |
|
更新配置并启动。
GitLab还未完全启动/内存不足
GItLab启动所需内存空间较大,理论最低要求4G的内存空间,如果低于则无法正常启动。
同样的,GitLab启动需要一段时间,首次启动需要等待1-2分钟才能完全启动。通过free -m
可以查看free空间大小,通过不断查询发现free空间不断减小,说明gitlab正在启动中。
未开启unicorn
我就是这个错误,因为我的502是瞬间就刷出来的,而且即使是多等待gitlab启动几分钟后也无济于事。
排查过程
试了以上方法都不行,我stackflow上找到灵感,输入lsof -i:4399
发现gitlab正在占用,没有问题
输入lsof -i:8888
发现没有结果,也就说明8888没有被unicorn占用!!!因而我怀疑是否开启了unicorn服务。
输入命令gitlab-ctl status
发现没有unicorn这一项,于是发现了问题来源。
依然是打开gitlab配置文件:
1 |
|
保存并重启gitlab后,我们发现unicorn出现了。再次输入IP:4399终于成功登入了!!!!!
再次查看端口占用情况:
Gitlab初使用
添加SSH Key
本机安装过git的,在user/.ssh/id_rsa中存有密钥,将其配置到gitlab的SSH KEY中即可。
下拉项目和上传项目
公司使用Gitlab管理项目实践指南 - 知乎 (zhihu.com)
GitLab CI+Docker+SpringBoot
博客参考:GitLab Ci+docker持续化部署SpringBoot项目_Manaphy Chen的博客-CSDN博客
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!