gitlab-ce安装

1.背景

在centos7.9上安装gitlab-ce,ce是免费版,
本机的ip是110.110.110.100,下面配的ip都是这个;
本机已经安装了nginx和redis,安装gitlab有自带的nginx和redis,我禁掉了,用我自己的nginx和redis。

2.配置repo源

到/etc/yum.repos.d目录下创建gitlab-ce.repo文件,以下是文件内容

[root@horse yum.repos.d]# cat gitlab-ce.repo 
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1

3.安装

yum install -y gitlab-ce
安装好后,修改配置 vi /etc/gitlab/gitlab.rb ,默认是这个配置文件

1.external_url改成本机的ip,如下:
注意:我用了自己的nginx,这个参数后面还要加上nginx端口号,具体看下面nginx配置。如果用gitlab自带的nginx,默认端口号是80,就不用加上端口

external_url 'http://110.110.110.100:13033'

这个external_url作用就是gitlab告诉别人它的对外访问地址,就是外面用浏览器登录的地址。比如在gitlab界面上点了一个链接/a/b/c,这个链接跳回在浏览器上地址就是http://110.110.110.100:13033/a/b/c,如果不配external_url ,gitlab默认返回的是主机名,浏览器上地址就是http://{主机名}/a/b/c,这个主机名,如果你浏览器所在机器无法解析就不能访问,还要手动改成ip地址+端口。

2.修改git存储目录,先在磁盘上创建目录/mnt/disk2/gitlab-data,
修改配置git_data_dirs,注意这个配置加了注释“#”,要把注释去掉

git_data_dirs({
   "default" => {
     "path" => "/mnt/disk2/gitlab-data"
    }
 })

4.加载配置,gitlab-ctl reconfigure
这个会运行比较久(我这里大概20分钟)
这是运行成功的图,可以看到密码文件,和提示密码在24小时后过期
在这里插入图片描述

可以到/mnt/disk2/gitlab-data目录下,可以看到自动生成了相关目录。
在这里插入图片描述
5.启动gitlab-ctl start
启动好后,查看状态gitlab-ctl status
可以看到启动了哪些东西
在这里插入图片描述
很多服务是我不需要的,我只要git功能,所以禁用了一些服务
vi /etc/gitlab/gitlab.rb,把要禁的服务改成false,注意去掉前的注释,如下:

在这里插入图片描述
我禁用了这些

redis['enable'] = false
nginx['enable'] = false
logrotate['enable'] = false
gitlab_kas['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false

改完配置后执行"gitlab-ctl reconfigure",这个执行完直接“gitlab-ctl status"查看服务是否还在。我只留了这几个服务。
在这里插入图片描述

注意,禁用了nginx,不能web访问,因为我本机安装了nginx,所以禁用了,后面配置成自己的nginx.

gitlab每个服务的功能如下(网上抄的,自己参考,不想用的就禁掉)

1.nginx:作为Web服务器和反向代理,用于访问GitLab的Web界面。可以关闭,但会导致无法通过Web界面访问GitLab。
2.prometheus_monitoring:提供监控和报警功能,收集和分析GitLab的性能指标。可以关闭,不影响基本代码存放功能。
3.registry:提供Docker镜像仓库功能。可以关闭,除非需要使用GitLab作为私有Docker镜像仓库。
4.gitlab_workhorse:提供HTTP请求代理和负载均衡功能,优化Git操作和文件传输。可以关闭,但可能影响性能优化。
5.puma:作为GitLab的Web服务器,处理HTTP请求和提供Web界面和API访问功能。不建议关闭,是GitLab的核心组件之一。
6.postgresql:作为数据库存储引擎,存储GitLab应用程序的数据。不建议关闭,是GitLab的核心组件之一。
7.redis:提供缓存和键值存储功能,改善GitLab的性能。可以关闭,但可能影响性能优化。
8.redis_master_role:作为Redis的主节点角色,提供高可用性和复制功能。不建议关闭,是GitLab的核心组件之一。
9.redis_replica_role:作为Redis的从节点角色,提供高可用性和复制功能。不建议关闭,是GitLab的核心组件之一。
10.logrotate:提供日志文件管理和轮转功能,管理GitLab的日志文件。可以关闭,但需要手动管理和清理日志文件。
1.manage_accounts:提供账户管理功能,包括用户和权限管理。可以关闭,但无法进行用户和权限管理操作。
12.manage_storage_directories:提供存储目录管理功能,管理GitLab的数据存储路径。可以关闭,但需要手动管理存储目录。
13.gitlab_pages:提供GitLab Pages服务的支持功能,用于托管静态网页。可以关闭,除非需要使用GitLab Pages功能。
14.pages_nginx:作为GitLab Pages服务的Nginx支持功能,处理静态网页请求。可以关闭,除非需要使用GitLab Pages功能。
15.gitlab_kas:提供Kubernetes集成功能。可以关闭,除非需要使用GitLab与Kubernetes集成。
16.mattermost:提供团队协作和聊天功能。可以关闭,除非需要使用GitLab内置的Mattermost功能。
17.mattermost_nginx:作为Mattermost的Nginx支持功能,处理Mattermost的HTTP请求。可以关闭,除非需要使用GitLab内置的Mattermost功能。
18.registry_nginx:作为Docker镜像仓库的Nginx支持功能,处理Docker镜像请求。可以关闭,除非需要使用GitLab作为私有Docker镜像仓库。
19.monitoring_role:提供监控组件的角色。可以关闭,不影响基本代码存放功能。
20.prometheus:提供监控和报警功能,收集和分析GitLab的性能指标。可以关闭,不影响基本代码存放功能。
21.alertmanager:用于接收和处理监控报警信息。可以关闭,不影响基本代码存放功能。
22.node_exporter:收集主机的系统和硬件指标,供Prometheus监控使用。可以关闭,不影响基本代码存放功能。
23.redis_exporter:收集Redis的性能指标,供Prometheus监控使用。可以关闭,不影响基本代码存放功能。
24.postgres_exporter:收集PostgreSQL数据库的性能指标,供Prometheus监控使用。可以关闭,不影响基本代码存放功能。
25.pgbouncer_exporter:收集PgBouncer连接池的性能指标,供Prometheus监控使用。可以关闭,不影响基本代码存放功能。
26.gitlab_exporter:提供GitLab自身的性能指标,供Prometheus监控使用。可以关闭,不影响基本代码存放功能。
27.grafana:提供可视化和仪表盘功能,用于展示和分析监控指标。可以关闭,不影响基本代码存放功能。
28.gitaly:提供Git分布式文件系统的后端存储服务,处理Git操作和文件传输。不建议关闭,是GitLab的核心组件之一。
29.praefect:提供Git分布式文件系统的负载均衡和高可用性功能。不建议关闭,是GitLab的核心组件之一。
30.storage_check:用于检查存储目录的完整性和状态,确保数据的一致性。可以关闭,但无法进行存储目录的完整性检查。
31.redis_sentinel_role:作为Redis Sentinel的角色,提供高可用性和故障切换功能。不建议关闭,是GitLab的核心组件之一。
32.sentinel:作为Redis Sentinel的组件,管理Redis的高可用性和故障切换。不建议关闭,是GitLab的核心组件之一。
33.geo_postgresql:用于GitLab Geo功能的数据库存储引擎,复制和同步GitLab数据。可以关闭,除非需要使用GitLab Geo功能。
34.pgbouncer:作为PgBouncer连接池的前端代理,提供连接池和性能优化功能。可以关闭,不影响基本代码存放功能。
35.patroni:提供PostgreSQL的高可用性和故障切换功能。可以关闭,除非需要使用高可用性的PostgreSQL数据库。
36.consul:提供服务发现和配置管理功能。可以关闭,不影响基本代码存放功能。
37.rails: 是基于ruby的一个web框架,用于快速开发基于ruby开发web应用的框架,类似springboot,
38.GitLab Workhorse: 处理大规模的HTTP请求,优化GitLab的性能
39.Sidek: GitLab的后端任务处理服务,用于处理队列中的作业。

4 配置本地nginx

注意我本地安装了redis
在这里插入图片描述

1.vi /etc/gitlab/gitlab.rb,改下面几个配置,改完记得重启
gitlab-ctl reconfigure,这个命令就可以重启,不放心的话再执行gitlab-ctl restart

external_url 'http://110.110.110.100:13033'  #nginx代理的端口
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "110.110.110.100:18888"
gitlab_rails['trusted_proxies'] = ["110.110.110.100"]
gitlab_rails['redis_host'] = "127.0.0.1"   #这是我本地redis服务
gitlab_rails['redis_port'] = 6379     #这是我本地redis端口
web_server['external_users'] = ['root']    #这是我本地nginx的启动用户

注意配置里有redis参数,用的是我本地装的redis,如果不配redis,gitlab_rails会报错连不上redis,用浏览器访问也会报错,也就是说必须要有redis,或用gitlab自带的redis(前面的步骤中不要禁掉,我是禁掉了,用我自己的redis)

2.在nginx配置中加入gitlab的配置,然后重启nginx
include /mnt/disk2/gitlab-data/gitlab-nginx.conf;
文件内容如下:

upstream my-gitlab {
      server 110.110.110.100:18888;
}
server {
        listen 13033;
        server_name 110.110.110.100;

        location / {
            client_max_body_size 0;
            gzip off;
            ## Some requests take more than 30 seconds.
            proxy_read_timeout      300;
            proxy_connect_timeout   300;
            proxy_redirect          off;
            proxy_http_version 1.1;
            proxy_set_header    Host                $http_host;
            proxy_set_header    X-Real-IP           $remote_addr;
            proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
            proxy_set_header    X-Forwarded-Proto   $scheme;
            proxy_pass http://my-gitlab;
        }
     }

3.浏览器访问
用root用户登录,从之前提示中获取密码文件,查看密码
cat /etc/gitlab/initial_root_password
在这里插入图片描述

改一下登录密码
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值