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. (b679f55a199) FOSS
GitLab Shell: 11.0.
PostgreSQL: 10.12
--------------------------------------------------------------------------------
Loading production environment (Rails 6.0.)
irb(main)
执行命令: user = User.where(id: ).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
youzhibing2094@sina.com yzb2094 青石路
test1@qq.com test1 测试账号1
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 → 搭建中常遇的问题与日常维护的更多相关文章
- 用GitLab搭建自己的私有GitHub
相信很多技术人员都知道有个github造福开发人员的git(分布式版本管理工具)代码管理社区,可以说现在git是开发人员的必备技能之一 本周有个朋友公司需要一个类似github的代码仓库管理系统,本人 ...
- Jenkins+Gitlab搭建持续集成(CI)环境
利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...
- GitLab搭建详细过程
一.前提 系统:Centos 6.5 软件版本:gitlab-7.8.4 Selinux:关闭 防火墙规则:先清空(搭建好了后续自己添加相关放行规则) 二.yum源配置和相关依赖包 1.添加epel源 ...
- CentOS 系统下Gitlab搭建与基本配置 以及代码备份迁移过程
GitLab 是一个开源的版本管理系统,提供了类似于 GitHub 的源代码浏览,管理缺陷和注释等功能,你可以将代码免费托管到 GitLab.com,而且不限项目数量和成员数.最吸引人的一点是,可以在 ...
- gitlab搭建与基本使用【转】
一.git.github.gitlab的区别Git是版本控制系统,Github是在线的基于Git的代码托管服务.GitHub是2008年由Ruby on Rails编写而成.GitHub同时提供付费账 ...
- gitlab搭建之互备模式
gitlab搭建之互备模式 gitlab搭建之互备模式 前言:gitlab目前默认的部署方式是本地单机部署,为了提高gitlab环境的可靠性和稳定性,必须构建一套互备搭建方案:借助gitolilt ...
- GitLab → 搭建私有的版本控制的托管服务平台
开心一刻 睡着正香,媳妇用力把我晃醒说:“快起来,我爸来了.” 我一下醒了,手脚熟练的把衣服一抱,滚到床底,顺便把鞋也收了进去 媳妇蹲下无奈的说:“快出来!咱俩都结婚半年了.” 我:“对哦,搞习惯了” ...
- gitlab 搭建(基于现有nginx)
普通搭建请看:gitlab 搭建 一.gitlab搭建 1.添加GitLab镜像源并安装gitlab服务器 wget https://mirrors.tuna.tsinghua.edu.cn/gitl ...
- MC-BE基岩版服务器搭建与日常维护
有部分内容被csdn和谐,强烈建议移步我的个人博客以获得更好的排版和阅读体验: xzajyjs.cn. 目录 环境搭建 开始部署 日常维护 服务器的白名单机制 定时备份 服务器升级 服务器模组安装 搭 ...
随机推荐
- How to Write a README on GitHub
最近在寫 GitHub 上的 README,發現這個東西好像每個人的寫法都不太一樣,於是稍微整理了一下自己覺得大概要包含哪些內容. Motivation 顧名思義就是簡介一下為什麼會有這個專案,以及這 ...
- AI:是猫还是狗,这是个问题
如果你不喜欢小猫和小狗,你可能不知道他们具体是哪一种品种,但是一般来说,你都能区分出这是猫还是狗,猫和狗的特征还是不一样的,那我们如何用机器学习的方法训练一个网络区分猫狗呢? 我们选用的是 Kaggl ...
- tp5.1 请求时间格式化
当前时间:{$Request.time|date='Y-m-d H:i:s'} 注意database.php的配置!记录一下!
- 【攻略】如何在云开发中使用 Redis?
默认情况下,云开发的函数部署在公共网络中,只可以访问公网.如果开发者需要访问腾讯云的 Redis.TencentDB.CVM.Kafka 等资源,需要建立私有网络来确保数据安全及连接安全. 本文会演示 ...
- session和el表达式
2015/1/21 ## 回顾昨天案例 ## # 模拟购物车: >> 基本步骤: |-- 显示所有的书籍: |-- 制作书记列表/模仿数据库: |-- 参见昨天示例: |-- 制作查看详情 ...
- 用 Python 生成 HTML 表格
在 邮件报表 之类的开发任务中,需要生成 HTML 表格. 使用 Python 生成 HTML 表格基本没啥难度, for 循环遍历一遍数据并输出标签即可. 如果需要实现合并单元格,或者按需调整表格样 ...
- Mybatis-Plus代码生成器使用详解
首先创建springboot的项目(创建步骤省略) 创建好项目后要配置maven依赖,附上pom.xml: <?xml version="1.0" encoding=&quo ...
- C与ARM汇编结合实现mini2440串口uart简单程序
最近学完了ARM的一些基础知识,开始在mini2440上开发一些简单的程序,串口发送程序是一开始涉及多个寄存器的例子,稍有繁多的步骤应该是开发过程中要慢慢适应的境况 下面的程序的目的是实现mini24 ...
- html+css+js+Hbuilder开发一款安卓APP,根本不用学Android开发!
我们知道,要做一款安卓APP,咱们得先学安卓开发语言,例如java,前端后端.那么没有这些开发语言基础,咱们怎么做呢?其实现在有比较好的开发方案就是做webAPP,咱们可以用web前端知识构建安卓客户 ...
- win10查看本机mac地址的详细操作
今天和大家分享win10查看本机mac地址的方法,mac地址是什么东西?MAC地址实际上就是网卡的一个标识,和身份证号码类似,大多数情况下是不需要关心MAC地址是多少的,一般不能改动,所以也不会重复. ...