• GitLab部署


    一、Gitlab安装

    官网:

    https://about.gitlab.com/downloads

    下载地址:(选择相应的版本进行下载)

    https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

    本次文档的安装环境与版本:

    centos7.5 64位,内存2G+      ; 安装版本:gitlab-ce-11.5.6-ce.0.el7.x86_64.rpm

    安装插件:

    sudo sed -ri 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/configrm -rf /var/run/yum.pid
    sudo sed -ri 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/configyum -y install epel.release
    sudo yum install curl policycoreutils openssh-server openssh-clients
    sudo systemctl enable sshd
    sudo systemctl start sshd
    sudo yum install postfix
    sudo systemctl enable postfix
    sudo systemctl start postfix
    sudo firewall-cmd --permanent --add-service=http
    sudo systemctl reload firewalld
    sudo setenforce 0
    sudo sed -ri 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config

    安装gitlab:

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

    修改配置文件:

    vim /etc/gitlab/gitlab.rb

    http://{{ip}}      #此处改为本机的IP或者域名

    默认用户

    root

    5iveL!fe

    修改完后生效命令:gitlab-ctl reconfigure

    查看状态:gitlab-ctl status

    二、Gitlab配置

    Gitlab组件介绍:

    nginx:静态Web服务器

    gitlab-shell:用于处理Git命令和修改authorized keys列表

    gitlab-workhorse:轻量级的反向代理服务器

    logrotate:日志文件管理工具

    postgresql:数据库

    redis:缓存数据库

    sidekiq:用于在后台执行队列任务(异步执行)

    unicornGitLab Rails应用是托管在这个服务器上面的

    三、常用命令:

    gitlab-ctl status

    gitlab-ctl start

    gitlab-ctl stop

    gitlab-ctl restart

    gitlab-ctl tail nginx

    /var/opt/gitlab/git-data/repositories/root:库默认存储目录

    /opt/gitlab 应用代码和相应的依赖程序

    /var/opt/gitlabgitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置

    /etc/gitlab 配置文件目录

    /var/log/gitlab:此目录下存放了gitlab各个组件产生的日志

    /var/opt/gitlab/backups/:备份文件生成的目录

    更改配置文件需要进行以下操作:

    需要以下操作

    1gitlab-ctl reconfigure                  重置配置文件

    2gitlab-ctl show-config                   验证配置文件

    3gitlab-ctl restart                           重启gitlab服务

    四、Gitlab备份管理

    配置文件中加入

    #gitlab_rails['backup_path'] = '/data/backup/gitlab'    #更改备份目录

    gitlab_rails['backup_path'] =' /data/backups/gitlab/backups'

    #gitlab_rails['backup_keep_time'] = 604800              #备份文件保留7天

    gitlab_rails['backup_keep_time'] = 6048000              #备份文件保留70天

    如果自定义备份目录需要赋予git权限

    mkdir  /data/backups/gitlab/backups
    chown -R git.git  /data/backups/gitlab/backups

    定时任务Crontab中加入

    0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create

    策略建议:本地保留三到七天,在异地备份永久保存

    附:gitlab-rake gitlab:backup:create RAILS_ENV=production

    gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1524129806_2018_04_19

    五、Gitlab备份恢复

    恢复时,先停掉服务,以免双写导致数据错误

    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq

    恢复时,选择的版本就是备份是产生的Linux时间戳

    gitlab-rake gitlab:backup:restore BACKUP=1550599209

    date -d @1550599209

    附:

    备份迁移时的问题:https://blog.csdn.net/longfeicool4321/article/details/85251552

    六、Gitlab邮件配置

    gitlab_rails['time_zone'] = 'Asia/Shanghai'

    gitlab_rails['gitlab_email_enabled'] = true

    gitlab_rails['gitlab_email_from'] = 'dulingyu52@126.com'

    gitlab_rails['gitlab_email_display_name'] = 'gitlab'

    gitlab_rails['smtp_enable'] = true

    gitlab_rails['smtp_address'] = "smtp.126.com"

    gitlab_rails['smtp_port'] = 25

    gitlab_rails['smtp_user_name'] = "dulingyu"

    gitlab_rails['smtp_password'] = "user_password"

    gitlab_rails['smtp_domain'] = "126.com"

    gitlab_rails['smtp_authentication'] = "login

    七、检查服务日志信息

    # 检查redis的日志

    sudo gitlab-ctl tail redis

    # 检查postgresql的日志

    sudo gitlab-ctl tail postgresql

    # 检查gitlab-workhorse的日志

    sudo gitlab-ctl tail gitlab-workhorse

    # 检查logrotate的日志

    sudo gitlab-ctl tail logrotate

    # 检查nginx的日志

    sudo gitlab-ctl tail nginx

    # 检查sidekiq的日志

    sudo gitlab-ctl tail sidekiq

    # 检查unicorn的日志

    sudo gitlab-ctl tail unicorn

    八、Gitlab管理员密码重置

    使用rails工具打开终端

    sudo gitlab-rails console production

    查询用户的email,用户名,密码等信息,id:1 表示root账号,id:2 表示创建的第二个账号,依次类推

    user = User.where(id: 1).first

    重新设置密码

    user.password = '新密码'
    user.password_confirmation = '新密码'

    保存密码

    user.save!

    完整的操作ruby脚本

    user = User.where(id: 1).first
    user.password = '新密码'
    user.password_confirmation = '新密码'
    user.save!

    然后使用重置过的密码重新登录

  • 相关阅读:
    Stack Overflow 2016最新架构探秘
    (转)个人职业规划中如何使自己的职业生涯升华
    (转)软件架构师应该知道的97件事
    (转)一共81个,开源大数据处理工具汇总
    (转) 架构师的能力模型
    (转)数据库表分割技术浅析(水平分割/垂直分割/库表散列)
    (转)乐观锁与悲观锁——解决并发问题
    (转)从“如何设计用户超过1亿的应用”说起—数据库调优实战
    (转)浅谈数据库的水平拆分
    (转).NET Memory Profiler 使用简介
  • 原文地址:https://www.cnblogs.com/ling-yu-amen/p/10487550.html
Copyright © 2020-2023  润新知