Linux ubuntu手动安装gitlab、docker安装gitlab教程及配置

✍️Auth:运维笔记       Date:2021/10/20       Cat:Linux服务器       👁️:1,264 次浏览

搭建环境:
Gitlab服务器 192.168.152.131
gitlab安装地址下载:https://about.gitlab.com/install/

一:原生手动安装gitlab

1.安装并配置必要的依赖

sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

2.添加GitLab包并安装包

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

3.安装gitlab并登录

gitlab分ce(社区版)和ee(企业版),这里默认是企业版ee

sudo apt -y install gitlab-ee

等一段时间安装,比较大有1026M,安装完成后显示:


安装完成,在浏览器输入IP即可访问。
默认用户为root,默认密码在 /etc/gitlab/initial_root_password

查看root密码,这个文件将在首次执行reconfigure后24小时自动删除:

sudo cat /etc/gitlab/initial_root_password


登录后,请尽快更改密码。 如果没有密码文件,或者没有重定向修改root密码界面,需要重置密码,重置密码教程见本文最后。

注意:如出现502错误,或者500错误。可能出现的原因:
1:内存不够,最低需要2G内存,否则崩溃,解决方法,加大内存。或者增加虚拟内存swap。
2:80端口被占用,解决方法: 更改配置文件端口(下面有介绍)。

4.重新配置Gitlab(可选)

配置文件位置 /etc/gitlab/gitlab.rb
更改配置文件:

 sudo vim /etc/gitlab/gitlab.rb

安需求可自行更改,如将登录连接改为IP,也可更改http为https以便GitLab会自动将用户重定向到受Let’s加密证书保护的站点:

#原配置
external_url 'http://gitlab.example.com'
#修改后配置
external_url 'https://192.168.152.131'

更改端口,去掉注释

#原配置
#nginx['listen_port'] 
#修改后
nginx['listen_port'] = 9099

还有邮箱配置,可自己找找配置,由于用得不多,就不写了。

修改完后,必须重新加载配置,否则不生效。
保存配置,重启。

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-ctl status

附上GitLab常用命令:

常用命令说明
sudo gitlab-ctl reconfigure重新加载配置,每次修改/etc/gitlab/gitlab.rb文件之后执行
sudo gitlab-ctl status查看 GitLab 状态
sudo gitlab-ctl start启动 GitLab
sudo gitlab-ctl stop停止 GitLab
sudo gitlab-ctl restart重启 GitLab
sudo gitlab-ctl tail查看所有日志
sudo gitlab-ctl tail nginx/gitlab_acces.log查看 nginx 访问日志
sudo gitlab-ctl tail postgresql查看 postgresql 日志

这里原生安装配置完成。

二:docker快速安装gitlab

1.下载gitlab镜像

这里默认下载ce社区版即可

sudo docker pull gitlab/gitlab-ce

2.创建本地挂载文件夹

通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。

sudo mkdir -p /var/gitlab/etc
sudo mkdir -p /var/gitlab/log
sudo mkdir -p /var/gitlab/data

3.启动docker并挂载文件

docker run -d -h gitlab -p 443:443 -p 80:80  -p 2222:22 --name gitlab --restart always -v /var/gitlab/etc:/etc/gitlab -v /var/gitlab/log:/var/log/gitlab -v /var/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

4.配置GitLab主机名

sudo vim /var/gitlab/etc/gitlab.rb

原配置连接被注释,取消注释,修改IP连接

#原配置
#external_url 'GENERATED_EXTERNAL_URL'
#修改后配置
external_url 'http://192.168.152.131'

如果容器80端口映射到主机是其他端口,还需要在配置文件改端口,我80映射的也是80,所以无需更改。

sudo vim /var/gitlab/data/gitlab-rails/etc/gitlab.yml

更改完后重启docker

sudo docker restart gitlab

在浏览器访问IP登录,第一次可能无法显示,等一会或者多刷新几次即可显示。如果没有密码文件,或者没有重定向修改root密码界面,需要重置密码,我就是这种情况。

5.重置密码

进入容器:

docker exec -it gitlab /bin/bash

输入命令。

gitlab-rails console -e production
user = User.where(id:1).first
user.password ='12345678'
user.password_confirmation ='12345678'
user.save!

第一次密码我设置123456,提示过短,至少8尾数。最后保存退出,即可登录成功。

docker安装gitlab完成。

6. ssh git clone一直输入密码问题

在gitlab已经布置好ssh key后,如果gitlab直接部署在宿主上,使用ssh克隆没有问题。但是,gitlab部署在容器中就出现这个问题。

ssh传输都是通过22端口传输的,一般被宿主的sshd服务占用。所以gitlab容器的22端口不能直接映射到宿主的22端口,要换个其他端口,比如我这里映射的2222。

更改配置文件

sudo vim /var/gitlab/etc/gitlab.rb

找到gitlab_rails[‘gitlab_shell_ssh_port’]
去掉注释#,改为

gitlab_rails['gitlab_shell_ssh_port'] = 2222

保存退出,进入docker,重载配置

docker exec -it gitlab /bin/bash
gitlab-ctl reconfigure

退出后,再次查看clone地址,已经加上了2222端口。

clone这个地址就不会要求输入密码了。

打赏作者

Linux ubuntu手动安装gitlab、docker安装gitlab教程及配置》有2个想法

  1. Pingback引用通告: Linux基于gitlab搭建drone,图文详细教程 - 运维笔记(ywbj.cc)

  2. Pingback引用通告: Jenkins+Gitlab通过脚本自动部署回滚web项目版本至服务器集群(测试环境和正式环境),图文详细 - 运维笔记(ywbj.cc)

发表评论