gitlab+nginx代码仓库安装

gitlab+nginx代码仓库安装

GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目安装。

它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。

团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

1. 配置yum源

vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

2. 更新本地yum源

yum makecache

3. 安装GitLab社区版

自动安装最新版本

yum -y install gitlab-ce

4. 配置gitlab

  • gitlab默认安装位置/etc/gitlab/
  • gitlab默认仓库存储位置/var/opt/gitlab/git-data/

gitlab默认集成nginx/redis等服务

[root@ip-172-31-24-119 gitlab]# ll /var/opt/gitlab/
total 20
drwxr-x---. 3 gitlab-prometheus root         40 Aug 29 14:39 alertmanager
drwx------. 2 git               root          6 Aug 29 10:42 backups
-rw-------. 1 root              root         38 Aug 29 10:44 bootstrapped
drwx------. 2 git               root         75 Aug 29 14:40 gitaly
drwx------. 3 git               root         25 Aug 29 10:42 git-data
drwxr-xr-x. 3 git               root         19 Aug 29 10:42 gitlab-ci
drwxr-xr-x. 2 git               root         50 Aug 29 14:39 gitlab-monitor
drwxr-xr-x. 9 git               root       4096 Aug 29 14:39 gitlab-rails
drwx------. 2 git               root         23 Aug 29 14:39 gitlab-shell
drwxr-x---. 2 git               gitlab-www   51 Aug 29 14:40 gitlab-workhorse
drwx------. 4 gitlab-prometheus root         78 Aug 29 14:39 grafana
drwx------. 3 root              root         68 Aug 29 16:50 logrotate
drwxr-x---. 9 root              gitlab-www 4096 Aug 29 14:40 nginx
drwxr-xr-x. 3 root              root         31 Aug 29 10:44 node-exporter
drwx------. 2 gitlab-psql       root         25 Aug 29 14:39 postgres-exporter
drwxr-xr-x. 3 gitlab-psql       root         77 Aug 29 14:40 postgresql
drwxr-x---. 4 gitlab-prometheus root         50 Aug 29 14:39 prometheus
-rw-r--r--. 1 root              root        226 Aug 29 14:39 public_attributes.json
drwxr-x---. 2 gitlab-redis      git          57 Aug 29 17:36 redis
-rw-r--r--. 1 root              root         40 Aug 29 10:42 trusted-certs-directory-hash

修改gitlab配置文件

vim /etc/gitlab/gitlab.rb
# 修改gitlab内置nginx的端口为8000,防止与现有nginx冲突
nginx['listen_port'] = 8000
# 设置gitlab的访问路径(是通过外部nginx反向代理访问的)
external_url 'http://git域名/'
# 修改gitlab的备份路径
gitlab_rails['backup_path'] = "/data/gitlab/backups"
# 修改gitlab的仓库地址
git_data_dirs({ "default" => { "path" => "/mnt/nas/git-data" } })

配置完成后,重新加载配置

gitlab-ctl stop
gitlab-ctl reconfigure

重新加载后,会发现在/data/gitlab目录下多出一个repositories目录

5. 启动Gitlab

gitlab-ctl start

扩展(可不做):

  • 1). 已存在git库时修改备份、仓库地址,会导致已有project的丢失,需要提前进行备份,然后再修改配置文件中的相应参数,修改后再导入备份文件

    创建备份

    gitlab-rake gitlab:backup:create
    

    使用以上命令会默认在/var/opt/gitlab/backups目录下创建一个名称类似为1520580592_2018_03_09_10.5.3_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1520580592_2018_03_09_10.5.3是备份创建的日期。

    恢复备份

    先停止相关数据连接服务

    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    

    从1520580592_2018_03_09_10.5.3编号备份中恢复

    gitlab-rake gitlab:backup:restore BACKUP=1520580592_2018_03_09_10.5.3
    
  • 2). 修改仓库地址

    在gitlab 8.0以后11.0之前的版本参数为:gitlab_rails[‘backup_path’] = “/mnt/gitlab/backup”,在11.0之后的版本为:git_data_dirs({ “default” => { “path” => “/mnt/nas/git-data” } })

  • 3). gitlab配置通过smtp发送邮件(QQ exmail腾讯企业为例)

    编辑/etc/gitlab/gitlab.rb文件(加到文件最后面就好了)。以QQ企业邮箱为例:

    gitlab_rails['smtp_enable'] = true
    
    gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
    
    gitlab_rails['smtp_port'] = 465
    
    gitlab_rails['smtp_user_name'] = "gitlab@fayfox.com"
    
    gitlab_rails['smtp_password'] = "******"
    
    gitlab_rails['smtp_authentication'] = "login"
    
    gitlab_rails['smtp_enable_starttls_auto'] = true
    
    gitlab_rails['smtp_tls'] = true
    
    gitlab_rails['gitlab_email_from'] = 'gitlab@fayfox.com'
    

    重新配置gitlab

    gitlab-ctl reconfigure
    

    通过命令行测试邮件是否发送成功(也可以不测)

    gitlab-rails console
    irb(main):003:0> Notify.test_email('369281831@qq.com', 'Message Subject', 'Message Body').deliver_now
    
  • 4). gitlab内置的有nginx,如果要使用自建nginx方法有两种:

    • 第一种:自建nginx —> gitlab

      #禁止内置nginx启动

      vim /etc/gitlab/gitlab.rb
      更改配置:
      nginx['enable'] = false
      参考内置nginx的配置,修改自建nginx配置
      
    • 第二种:自建nginx —> 内置nginx —> gitlab (比较方便)

      vim /etc/gitlab/gitlab.rb
      
      修改内置nginx端口,防止与现有nginx冲突
      
      nginx['listen_port'] = 8000
      
      设置gitlab的访问路径(是通过自建nginx反向代理访问的)
      
      external_url 'http://git域名/'
      
      修改自建nginx配置反代到内置nginx上
      

5. 配置nginx

在nginx配置文件中增加server段:

server {
      listen 80;
      server_name gitlab.gogobanking.com;
      location / {
设置最大允许上传单个的文件大小
          client_max_body_size 1024m;
          proxy_redirect off;
          #以下确保 gitlab中项目的 url 是域名而不是 http://git,不可缺少
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          # 反向代理到 gitlab 内置的 nginx
          proxy_pass http://127.0.0.1:8000;
          index index.html index.htm;
        }
    }

检查nginx配置

nginx -t

重启nginx

nginx -s reload

6. gitlab命令

#启停命令

gitlab-ctl start | stop | restart | status

#也可单独对一个服务进行启停

gitlab-ctl start nginx

#查看日志信息

gitlab-ctl tail

#查看具体某个服务的日志

gitlab-ctl tail nginx

#列举所有服务

gitlab-ctl service-list

#平稳停止一个服务

gitlab-ctl graceful-kill

#重新加载配置文件

gitlab-ctl reconfigure

#查看所有服务配置文件信息

gitlab-ctl show-config

#卸载软件

gitlab-ctl uninstall

#删除gitlab数据,重新白手起家

gitlab-ctl cleanse

#修改root密码

gitlab-rails console production
user = User.where(id: 1).first
=>
user.password = 'secret_pass'
=>
user.password_confirmation = 'secret_pass'
=>
user.save!
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值