您现在的位置是:网站首页>>版本控制>>Git

linux 下安装gitlab

发布时间:2019-02-20 14:11:39作者:wangjian浏览量:601点赞量:0

    GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库

    一:安装依赖

    #安装所需依赖
    yum install curl openssh-server openssh-clients postfix cronie
    #GitLab使用postfix发送邮件 
    service postfix start
    #设置postfix开机自启动
    chkconfig postfix on

    二:安装gitlab

    1:yum安装

    (1)新建 /etc/yum.repos.d/gitlab_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)安装gitlab

    yum makecache #更新本地缓存,提高安装速度
    yum install gitlab-ce #安装gitlab
    gitlab-ctl reconfigure #配置gitlab

    2:rpm安装

    (1):下载rpm包(下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/)

    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.7-ce.0.el7.x86_64.rpm

    (2)安装gitlab

    rpm -i gitlab-ce-10.2.7-ce.0.el7.x86_64.rpm

    安装时如果报如下错误:

    image.png

    执行

    yum install policycoreutils-python

    之后重新安装,出现如下现象说明安装成功

    image.png

    安装成后配置gitlab

    gitlab-ctl reconfigure #配置gitlab

    二:配置gitlab

    1:gitlab的备份与恢复

    (1)备份

     # 可以将此命令写入crontab,以实现定时备份
    /usr/bin/gitlab-rake gitlab:backup:create

    执行上述命令之后会在/var/opt/gitlab/backups目录下生成一个备份的tar文件

    image.png

    (2)恢复

    # 停止unicorn和sidekiq,保证数据库没有新的连接,不会有写数据情况
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    # 进入备份目录进行恢复,1550640732_2019_02_20_11.7.5为备份文件的数字部分
    cd /var/opt/gitlab/backups
    gitlab-rake gitlab:backup:restore BACKUP=1550640732_2019_02_20_11.7.5
    cd -
    # 启动unicorn和sidekiq
    gitlab-ctl start unicorn
    gitlab-ctl start sidekiq

    2:gitlab配置文件修改

    修改/etc/gitlab/gitlab.rb文件:

    (1):基本配置

    #外部访问url(冒号后面的为nginx端口号,默认为80,经过编译后,自动将这个配置编译到nginx配置,nginx配置文件为:/var/opt/gitlab/nginx/conf/gitlab-http.conf)
    external_url 'http://www.test.com:8888'
    #修改unicorn端口号,默认值就是8080,也可以不进行修改
    unicorn['port'] = 9999

    (2):gitlab发送邮件配置(配置参考:https://docs.gitlab.com/omnibus/settings/smtp.html)

    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
    gitlab_rails['smtp_password'] = "password"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true
    gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
    gitlab_rails['smtp_domain'] = "exmail.qq.com"

    (3):如果你的ssh端口不是22号端口,需要修改:

    gitlab_rails['gitlab_shell_ssh_port'] = 22

    (4)配置生效

    #使配置生效
    gitlab-ctl reconfigure
    #重新启动GitLab,如果gitlab没有启动,使用gitlab-ctl start
    gitlab-ctl restart

    注意如果你修改了/var/opt/gitlab/nginx/conf/gitlab-http.conf文件的话,使用gitlab-ctl reconfigure命令的话,/var/opt/gitlab/nginx/conf/gitlab-http.conf文件信息会进行重置

    3:测试是否安装成功

    打开浏览器访问:www.test.com:8888或服务器ip:8888(例:192.168.11.201:8888),出现如下现象说明安装成功

    如果出现拒绝访问,应该是防火墙问题,可以参考:linux之centos7防火墙基本使用

    如果出现502报错,一般是由于端口号占用问题,更改端口号再重新使配置生效,重新访问

    image.png

    第一次进入时需要密码重置,重置密码之后就可以登录gitlab了,登录时用户名为root,密码为刚刚重置的密码

    如果你之后忘记密码了,可以使用命令行修改密码

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

    image.png

    gitlab常用命令:

    gitlab-ctl start    # 启动所有 gitlab 组件;

    gitlab-ctl stop        # 停止所有 gitlab 组件;

    gitlab-ctl restart        # 重启所有 gitlab 组件;

    gitlab-ctl status        # 查看服务状态;

    vim /etc/gitlab/gitlab.rb        # 修改gitlab配置文件;

    gitlab-ctl reconfigure        # 重新编译gitlab的配置;

    gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;

    gitlab-ctl tail        # 查看日志;

    gitlab-ctl tail nginx/gitlab_access.log

    cat /opt/gitlab/embedded/service/gitlab-rails/VERSION  #查看gitlab版本


0 +1