CentOS7安装Gitlab13详细步骤

环境配置

CentOS Version 7.6
Gitlab Version gitlab-ce-13.12.15-ce.0.el7.x86_64

下载rpm包

Gitlab历史版本下载地址:https://packages.gitlab.com/gitlab/gitlab-ce(我在这里下载的 gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm 建议使用下载工具进行下载)

wget https://d20rj4el6vkp4c.cloudfront.net/7/8/el/7/package_files/76487.rpm?t=1718811948_59a1b0efcb67106db99181bc8e4ceecdd9b6f3d9

清华大学的镜像站更新比较慢,有的老版本(如13版本)都没有更新到13版本的最新版本

安装依赖

yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python

开始rpm安装gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm文件

rpm -ivh gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm

安装完成关注以下输出,表示已经安装成功

修改gitlab配置文件信息,指定服务ip和端口号

view /etc/gitlab/gitlab.rb

修改内容如下:

将external_url后面的url替换为自己的ip+端口号,(查看端口是否被占用,防火墙是否放开)

修改gitlab仓库存储目录

# 把注释取消然后指定新的仓库存储位置

git_data_dirs({ "default" => { "path" => "/home/gitlab/git-data" } })

 

添加配置信息

第一次配置信息,需要一定的时间,请耐心等待,直到最后看到gitlab Reconfigured! 表示配置完成。

[root@localhost ~]# gitlab-ctl reconfigure
.....
.....
.....
Running handlers:
Running handlers complete
Chef Client finished, 426/609 resources updated in 02 minutes 55 seconds
gitlab Reconfigured!

注:如果发现ip或者端口等配置信息需要更改,每次更改完之后,一定要重新加载配置 gitlab-ctl reconfigure

重启gitlab服务

看到如下的信息,“ok,run ”表示各个模块启动成功。gitlab-ctl start | stop | restart

[root@localhost ~]# gitlab-ctl restart
ok: run: alertmanager: (pid 224124) 0s
ok: run: gitaly: (pid 224146) 0s
ok: run: gitlab-monitor: (pid 224167) 1s
ok: run: gitlab-workhorse: (pid 224192) 0s
ok: run: logrotate: (pid 224211) 1s
ok: run: nginx: (pid 224218) 0s
ok: run: node-exporter: (pid 224294) 1s
ok: run: postgres-exporter: (pid 224307) 0s
ok: run: postgresql: (pid 224318) 0s
ok: run: prometheus: (pid 224327) 0s
ok: run: redis: (pid 224371) 0s
ok: run: redis-exporter: (pid 224376) 1s
ok: run: sidekiq: (pid 224393) 0s
ok: run: unicorn: (pid 224409) 0s

 到这里已经完成了对gitlab的安装

浏览器登陆

浏览器访问,http://ip:端口号

第一次访问,直接进入更改root账号密码的页面,只需要填写密码即可,修改完,直接跳入到登陆页面

进入到gitlab页面后,即可开始创建自己项目(完成)

 

遇到问题

1、访问首页报502查看后台日志返现两个错误

2024-06-20_01:12:21.24719 {"timestamp":"2024-06-20T01:12:21.245Z","pid":24887,"message":"* Listening on unix:///var/opt/gitlab/gitlab-rails/sockets/gitlab.socket"}
2024-06-20_01:12:21.25125 bundler: failed to load command: puma (/opt/gitlab/embedded/bin/puma)
2024-06-20_01:12:21.25130 Errno::EADDRINUSE: Address already in use - bind(2) for "127.0.0.1" port 8080
2024-06-20_01:12:21.25131   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/lib/puma/binder.rb:288:in `initialize'
2024-06-20_01:12:21.25133   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/lib/puma/binder.rb:288:in `new'
2024-06-20_01:12:21.25134   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/lib/puma/binder.rb:288:in `add_tcp_listener'
2024-06-20_01:12:21.25135   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/lib/puma/binder.rb:168:in `block in parse'
2024-06-20_01:12:21.25139   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/lib/puma/binder.rb:152:in `each'
2024-06-20_01:12:21.25141   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/lib/puma/binder.rb:152:in `parse'
2024-06-20_01:12:21.25142   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/lib/puma/runner.rb:144:in `load_and_bind'
2024-06-20_01:12:21.25143   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/lib/puma/cluster.rb:342:in `run'
2024-06-20_01:12:21.25144   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/lib/puma/launcher.rb:182:in `run'
2024-06-20_01:12:21.25145   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/lib/puma/cli.rb:80:in `run'
2024-06-20_01:12:21.25151   /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.1.1/bin/puma:10:in `<top (required)>'
2024-06-20_01:12:21.25194   /opt/gitlab/embedded/bin/puma:23:in `load'
2024-06-20_01:12:21.25197   /opt/gitlab/embedded/bin/puma:23:in `<top (required)>'

第1个报错是:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket: connect: connection refused

第2个报错是:Errno::EADDRINUSE: Address already in use - bind(2) for "127.0.0.1" port 8080

在我的环境只解决端口被占用的问题就可以了,把上面“修改gitlab配置文件信息,指定服务ip和端口号”,调整为8082就可以了(重新gitlab-ctl reconfigure/gitlab-ct restart即可)

补充:报8080端口被占用,查看8080端口发现是puma在监听8080端口;经过上诉办法调整成8082后重启,发现监听8082端口的是nginx,8080看来是puma的端口所以冲突了

 


 

补充(since24-06-26):后来发现8082也是gitlab服务群中sidekiq服务默认监听的端口(所以要换一个没有用的端口)

我这里还是把gitlab对外服务的端口修改成8080,操作如下:

view /etc/gitlab/gitlab.rb
external_url 'http://172.16.68.85:8080' ##对外服务端口还是改成8080
puma['port'] = 8070 ##放开这一行,并且把端口改成8070(注意挑选一个gitlab没有使用的端口,之前我改成8060发现gitlab的nginx也默认在监听8060端口,艹,导致访问还是一直报502)
然后执行 gitlab-ctl reconfigure
配置完成后,会自动重新生成puma的配置文件/var/opt/gitlab/gitlab-rails/etc/puma.rb而且里面的端口也同步成了8070
完成,已经把gitlab的对外服务端口就调整成为了8080

 

其他

邮件配置

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "your.smtp.server"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "your.smtp user"
gitlab_rails['smtp_password'] = "your.smtp password"
gitlab_rails['smtp_domain'] = "your.demain.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_from'] = 'gitlab@mail.domain.com'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@mail.domain.com'

查看服务

查看服务状态

[root@localhost ~]# gitlab-ctl status
run: alertmanager: (pid 224124) 81166s; run: log: (pid 223418) 81323s
run: gitaly: (pid 224146) 81166s; run: log: (pid 223304) 81324s
run: gitlab-monitor: (pid 224167) 81166s; run: log: (pid 223352) 81324s
run: gitlab-workhorse: (pid 224192) 81165s; run: log: (pid 223250) 81325s
run: logrotate: (pid 236092) 1964s; run: log: (pid 223251) 81325s
run: nginx: (pid 227942) 80560s; run: log: (pid 223181) 81326s
run: node-exporter: (pid 224294) 81164s; run: log: (pid 223308) 81324s
run: postgres-exporter: (pid 224307) 81163s; run: log: (pid 223428) 81323s
run: postgresql: (pid 224318) 81163s; run: log: (pid 223216) 81325s
run: prometheus: (pid 224327) 81162s; run: log: (pid 223417) 81323s
run: redis: (pid 224371) 81162s; run: log: (pid 223215) 81325s
run: redis-exporter: (pid 224376) 81162s; run: log: (pid 223354) 81324s
run: sidekiq: (pid 227863) 80573s; run: log: (pid 223158) 81326s
run: unicorn: (pid 228149) 80549s; run: log: (pid 223157) 81326s
 
格式:
进程名称:(进程ID编号)进程运行时间(秒);进程的日志服务进程Id  日志运行时间
 
run    表示进程运行正常
down   表示进程没有启动或者挂掉,我们可以查看服务的日志信息,来定位问题。 

查看服务日志

# 检查redis的日志
gitlab-ctl tail redis
# 检查postgresql的日志
gitlab-ctl tail postgresql
# 检查gitlab-workhorse的日志
gitlab-ctl tail gitlab-workhorse
# 检查logrotate的日志
gitlab-ctl tail logrotate
# 检查nginx的日志
gitlab-ctl tail nginx
# 检查sidekiq的日志
gitlab-ctl tail sidekiq
# 检查unicorn的日志
gitlab-ctl tail unicorn

注:每次修改完配置,记得启动配置更新。

到这里gitlab已经安装完成

 

补充:

一、gitlab 存储仓库目录设置及数据迁移

注:一开始没有考虑到把gitlab划分好存储目录,占用系统磁盘,由于gitlab是默认安装的,随着公司代码越来越多,导致gitlab数据目录空间不足

  • 设置存储仓库数据

  默认情况下omnibus-gitlab 将仓库数据存储在/var/opt/gitlab/git-data目录下,仓库存放在子目录repositories里面,以可以通过修改/etc/gitlab/gitlab.rb 的这一行来自定义 git-data 的父目录

[root@gitlab ~]#  vim /etc/gitlab/gitlab.rb 
# 把注释取消然后指定新的仓库存储位置(建议事先以root用户创建/home/gitlab/这一层级的目录)
git_data_dirs({ "default" => { "path" => "/home/gitlab/git-data" } })

  注意 :目标路径和其子路径必须不能为软链接。

  • 使设置生效

  原仓库目录,在没有数据的情况下

[root@gitlab ~]#  gitlab-ctl stop
[root@gitlab ~]# gitlab-ctl reconfigure //使修改生效

  如果 /var/opt/gitlab/git-data 目录已经存在Git仓库数据, 你可以用下面的命令把数据迁移到新的位置:

# 准备迁移之前要停止GitLab服务,防止用户写入数据。
[root@gitlab ~]# gitlab-ctl stop

# 注意 'repositories'后面不带斜杠,而
# '/home/gitlab/git-data'后面是有斜杠的。
[root@gitlab ~]# rsync -av /var/opt/gitlab/git-data/repositories /home/gitlab/git-data/

# 如果需要修复权限设置,
# 可运行下面的命令进行修复。
[root@gitlab ~]# gitlab-ctl reconfigure

# 再次检查下  /home/gitlab/git-data 的目录. 正常情况应该有下面这个子目录:
# repositories

[root@gitlab ~]# ls  /home/gitlab/git-data/
repositories
# 完工! 启动GitLab,验证下是否能
# 通过web访问Git仓库。
[root@gitlab ~]# gitlab-ctl start

  ->设置存储仓库数据的备用目录(有需要的设置)

  注意的是:自GitLab 8.10开始,可以通过在/etc/gitlab/gitlab.rb文件中添加下面的几行配置, 来增加多个 git 数据存储目录。

git_data_dirs({
  "default" => { "path" => "/var/opt/gitlab/git-data" },  //默认存储目录
  "alternative" => { "path" => " /home/gitlab-data" }     //备用存储目录
})

 

posted @ 2024-06-22 20:20  wangyana  阅读(13)  评论(0编辑  收藏  举报