搭建环境:
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这个地址就不会要求输入密码了。
打赏作者
Pingback引用通告: Linux基于gitlab搭建drone,图文详细教程 - 运维笔记(ywbj.cc)
Pingback引用通告: Jenkins+Gitlab通过脚本自动部署回滚web项目版本至服务器集群(测试环境和正式环境),图文详细 - 运维笔记(ywbj.cc)