zoukankan      html  css  js  c++  java
  • GitLab → 搭建中常遇的问题与日常维护

    开心一刻

      隔壁有一个80多岁的老大爷,昨天在小区的一棵树下发现一条黑色的蛇,冻僵了,大爷善心大发,就把蛇揣在了怀里,想给它一点温暖。

      今天一大早看到大爷在树上挂了一个牌子,写到:不准随地大小便!

    搭建中遇到的问题

      楼主的搭建过程算比较顺利(GitLab → 搭建私有的版本控制的托管服务平台),没有遇到太多问题,只遇到了如下两个问题

      安装卡住

        这基本是内存不足导致

        楼主一开始比较任性,没按官方的推荐(内存最少 4G)来,弄了个 2G 内存,一顿操作猛如虎,定睛一看原地杵,特么的竟然像泰山一样稳,进度在那一动不动

        直接卡住是比较烦的,因为不能直观地看出是否真的是卡住了,还是在安装中,只能凭感觉、经验来判断;如果出现如下类似错误信息

    * execute[clear the gitlab-rails cache] action run
    ================================================================================
    Error executing action `run` on resource 'execute[clear the gitlab-rails cache]'
    ================================================================================

        这也是内存不足所致

      502

        当我们成功安装、配置 GitLab 后,不一定就万事大吉了,访问 GitLab 的时候可能会出现如下错误

        GitLab 所需内存最低为 4G,若服务器配置太低会出现 502 错误

      GitLab 新装或重启后,需要等待 1 分钟才能使用

        对于单核 CPU 的服务器,Unicorn and Sidekiq 服务启动最少需要一分钟

        这个问题楼主没有遇到,因为开始的时候,楼主就给虚拟机分了 4 核 CPU

    那么说白了,只要我们的虚拟机(或真实机器)环境足够干净,硬件资源(内存和 CPU)足够好,就不太会出现如上的错误

    日常维护

      重置管理员的密码

      由于 root 账户用的很少,所以我们容易忘记它的密码,但不代表它不重要,类似 linux 的 root 账户;一旦我们忘记了 root 账号的密码,我们需要知道重置的方法,方法如下 

      1、进入 GitLab 控制台

    [root@localhost ~]# gitlab-rails console -e production

        GitLab 版本不同,命令会有所不同(网上说的而基本都是 gitlab-rails console production ),推荐大家直接上 GitLab 官网去找对应版本的命令

        当出现如下信息表示我们成功登入控制台

    [root@localhost ~]# gitlab-rails console -e production
    --------------------------------------------------------------------------------
     GitLab:       12.8.7 (b679f55a199) FOSS
     GitLab Shell: 11.0.0
     PostgreSQL:   10.12
    --------------------------------------------------------------------------------
    Loading production environment (Rails 6.0.2)
    irb(main)

        执行命令: user = User.where(id: 1).first ,此 user 则表示 root 用户

      3、修改密码

        执行命令: user.password = 'secret_pass' 修改密码, user.password_confirmation = 'secret_pass' 确认密码

      4、保存密码

        执行命令: user.save! 

      5、退出控制台

        执行命令: exit 

      完整过程类似如下:

      官方示例:How to reset your root password

      重置成功后,我们就可以用新密码来登录 root 账号了

      偏好设置

      GitLab 提供了很多的设置,楼主这里偷个懒,只教大家如何设置语言(虽然楼主知道大家的英语都很棒,但我相信大家的中文更棒),当语言变成我们最擅长的中文时,相信大家都能很好的进行偏好设置了;语言设置过程如下

      看着熟悉的中文,倍感亲切,但是要注意: 此功能当初处于实验阶段,翻译尚未全部完成 ,也就是说语言功能尚未全部完成

      批量添加账号

      我们用 SVN 或 Git 的时候,账号往往不是自己注册的,而是统一分配的;而我们搭建的又是私服,不对外提供服务,所以无需注册功能,那么我们用 root 账号来关闭注册功能,很简单,流程如下

      取消 Sign-up enabled 前的复选框勾选,保存就好了

      退出登录后可以发现,登录页的注册功能没了,既然不能注册了,那么就需要通过 root 用户来添加账号了

      添加单个账号的话,可以直接通过管理中心来添加,具体如下图

      单个账号的添加还可以通过 api 来实现,具体可查看:Users API

      如果账号少的话,通过单个添加的方式来添加是可以的,如果账号特别多的话,那就有点费时了,所以需要通过脚本的方式来批量添加账号了,具体我们往下看

      1、创建账户文本

        在 /opt 目录下创建 account_info.txt 

    12345678 youzhibing2094@sina.com yzb2094 青石路
    12345678 test1@qq.com test1 测试账号1 12345678 test2@qq.com test2 测试账号2

        4 列分别代表:登录密码  邮箱  用户名  别名

        一行代表一个账户

      2、获取 root 用户的 private_token

        获取方式比较简单,如下图所示

        如果访问令牌已经存在,则不需要新建;示例中的令牌: cwUxu3-2kiamVyKJQpW5  

      3、创建执行脚本

        在 /opt 目录下创建 batch_add_account.sh 

    #!/bin/bash
    #gitlab用户文本
    accountinfo="account_info.txt"
    while read line 
    do
        password=`echo $line | awk '{print $1}'`
        mail=`echo $line | awk '{print $2}'`
        username=`echo $line | awk '{print $3}'`
        name=`echo $line | awk '{print $4}'`
        curl -d "password=$password&email=$mail&username=$username&name=$name&private_token=cwUxu3-2kiamVyKJQpW5" "http://192.168.0.115/api/v4/users"
    done < $accountinfo

        private_token 的值就是上面 root 的访问令牌

      4、执行脚本

        赋予 batch_add_account.sh 可执行权限: [root@localhost opt]# chmod +x /opt/batch_add_account.sh 

        再执行 batch_add_account.sh: [root@localhost opt]# sh /opt/batch_add_account.sh 

        然后我们就可以在用户列表界面看到我们刚刚添加的账户了

        批量创建用户,还是通过 Users API 来完成的,也会是说底层还是一个一个添加的

      5、新账户登录

        我们用账号:yzb2094 登录下,发现登录不了,提示:  You have to confirm your email address before continuing. 

        提示需要邮箱验证,登录下邮箱,还真有一封验证邮件

         我们点击下其中的链接,完成验证之后就可以正常登录了,然后我们就可以在 GitLab 创建工程了, 后续操作就与 GitHub、Gitee 一样了

    参考

      GitLab Docs

      Gitlab快速部署及日常维护(社区版RPM包方式安装)

  • 相关阅读:
    BZOJ 3144 [Hnoi2013]切糕
    一场比赛:20170707
    BZOJ 2815 [ZJOI2012]灾难
    BZOJ 1088 [SCOI2005]扫雷Mine
    BZOJ 1052 [HAOI2007]覆盖问题
    BZOJ 3505 [Cqoi2014]数三角形
    BZOJ 2957 楼房重建
    BZOJ 2654 tree
    丁酉年六月十一ACM模拟赛
    BZOJ 3438 小M的作物 & BZOJ 1877 [SDOI2009]晨跑
  • 原文地址:https://www.cnblogs.com/youzhibing/p/12572598.html
Copyright © 2011-2022 走看看