美文网首页
安装并配置gitlab

安装并配置gitlab

作者: kevinfaith | 来源:发表于2018-12-18 14:39 被阅读9次

    简介

    GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

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

    团队成员可以利用内置的简单聊天程序(Wall)进行交流。

    它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

    GitLab分为社区版和企业版。企业版是要钱的、社区版是免费的,不但能建立免费的私有仓库而且没有数量上限,参与人员也没有数量限制,还能设置成员的权限,甚至细致到具体某条分支的权限,以及强大的工作流等等。
    所以我这里是安装的社区版

    安装

    安装社区版,GitLab CE 版本:11.3.13
    安装一些必要的依赖:

    sudo yum install -y curl policycoreutils-python openssh-server
    sudo systemctl enable sshd
    sudo systemctl start sshd
    sudo firewall-cmd --permanent --add-service=http
    sudo systemctl reload firewalld
    
    安装gitlab
    curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    sudo yum install gitlab-ce-11.3.13-ce.0.el7.x86_64
    
    配置域名访问
    vi /etc/gitlab/gitlab.rb
    external_url 'http://gitlab.kevin.com'  //修改成你的域名
    
    启动gitlab,并使配置生效
    gitlab-ctl reconfigure
    gitlab-ctl start
    

    添加dns解析,使你能通过域名解析到gitlab的地址

    使用浏览器访问
    http://gitlab.kevin.com 
    

    首次访问GitLab,系统会让你重新设置管理员的密码,设置成功后会返回登录界面.
    默认的管理员账号是root,如果你想更改默认管理员账号,请输入上面设置的新密码登录系统后修改帐号名.

    配置SMTP邮箱

    如果您不喜欢使用自带的sendmail服务收发邮箱,希望通过SMTP服务器而不是通过Sendmail发送应用程序电子邮件,请将以下配置信息添加到 /etc/gitlab/gitlab.rb并运行gitlab-ctl reconfigure。

    vi /etc/gitlab/gitlab.rb
    #添加
    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"
    

    以上是腾讯企业邮箱的配置文件,如果你用的是169或者gmail之类的邮箱,你可以查看官方的配置文件进行对应的修改。
    配置完成以后

    测试邮箱是否配置成功
    gitlab-ctl console  //进入控制台
    irb(main):002:0>Notify.test_email('xx@qq.com', '邮件标题', '邮件正题').deliver_now
    gitlab-ctl reconfigure    //使配置生效
    gitlab-ctl restart   //重启
    

    查看是否收到测试邮箱

    补充

    也是我的笔记

    gitlab的服务安装位置
    主配置文件: /etc/gitlab/gitlab.rb
    GitLab 文档根目录: /opt/gitlab
    默认存储库位置: /var/opt/gitlab/git-data/repositories
    GitLab Nginx 配置文件路径:  /var/opt/gitlab/nginx/conf/gitlab-http.conf
    Postgresql 数据目录: /var/opt/gitlab/postgresql/data
    
    GitLab由以下服务构成
    nginx: 静态web服务器
    gitlab-shell: 用于处理Git命令和修改authorized keys列表
    gitlab-workhorse: 轻量级的反向代理服务器
    logrotate:日志文件管理工具
    postgresql:数据库
    redis:缓存数据库
    sidekiq:用于在后台执行队列任务(异步执行)
    unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
    

    常用命令

    # 查看版本
    cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
    # 检查gitlab
    gitlab-rake gitlab:check SANITIZE=true --trace
    # 实时查看日志
    gitlab-ctl tail
    # 数据库关系升级
    gitlab-rake db:migrate
    # 清理redis缓存
    gitlab-rake cache:clear
    # 升级GitLab-ce 版本
    yum update gitlab-ce
    # 升级PostgreSQL最新版本
    gitlab-ctl pg-upgrade
    # 启动所有 gitlab 组件:
    gitlab-ctl start
    # 停止所有 gitlab 组件:
    gitlab-ctl stop
    # 停止所有 gitlab postgresql 组件:
    gitlab-ctl stop postgresql
    # 停止相关数据连接服务
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    # 重启所有 gitlab 组件:
    gitlab-ctl restart
    # 重启所有 gitlab gitlab-workhorse 组件:
    gitlab-ctl restart  gitlab-workhorse
    # 查看服务状态
    gitlab-ctl status
    # 生成配置并启动服务
    gitlab-ctl reconfigure 
    

    日志

    # 实时查看所有日志
    gitlab-ctl tail
    # 实时检查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的备份

    备份

    修改/etc/gitlab/gitlab.rb:
    找到gitlab_rails['backup_path'] = '/data/backups'
    后面的路径是备份文件的路径
    删除前面的#

    gitlab-ctl reconfigure
    
    备份命令
    gitlab-rake gitlab:backup:create
    

    该命令会在备份目录(默认:/var/opt/gitlab/backups/)下创建一个tar压缩包xxxxxxxx_gitlab_backup.tar,其中开头的xxxxxx是备份创建的时间戳,这个压缩包包括GitLab整个的完整部分。

    恢复
    # 停止相关数据连接服务
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    # 指定恢复文件,会自动去备份目录找。确保备份目录中有这个文件。
    # 指定文件名的格式类似:1499242399_2017_07_05_9.2.6,程序会自动在文件名后补    上:“_gitlab_backup.tar”
    # 一定按这样的格式指定,否则会出现 The backup file does not exist! 的错误
    gitlab-rake gitlab:backup:restore BACKUP=1499242399_2017_07_05_9.2.6
    # 启动Gitlab
    gitlab-ctl start
    

    相关文章

      网友评论

          本文标题:安装并配置gitlab

          本文链接:https://www.haomeiwen.com/subject/yqtlkqtx.html