0. 前言
说来惭愧,一直想搭建CI环境,却因为各种原因迟迟没有动手。当然也不是什么都没做,比如很早就选了git做为代码服务器,并且因为gitlab对CI的支持,两年前在fedora25上就安装了gitlab。当初按照gitlab官方文档,一路下一步就搞定了,顿时自信心爆棚,然后就没有然后了。

最近各方面机缘巧合,决定继续CI的DIY之路,陡然发现fedora已经28了,于是决定更新一下gitlab和fedora,当初F25那么顺利,F28能有多麻烦呢。而且用Fedora不就是看重他的更新速度吗,不跟着最新版本更新还不如去用centos了。

1. 添坑过程

故事很曲折,只想知道如何能够在fedora28上成功安装gitlab的朋友,可以移步文末"结论"部分。

按照 gitlab官网(http://www.gitlab.com)的说明,准备一路安装下去。fedora28可以参考centos7的步骤。

先安装ssh服务,防火墙允许http协议,安装电子邮件服务

然后设置gitlab仓库,下载gitlab并安装

注意官网是以gitlab-ee为例说明,要安装社区版本,将gitlab-ee改为gitlab-ce即可

正当我以为一路按照官方文档,三下五除二,很快就要搞定的时候,第一坑就出现了。。。

什么情况就没有找到匹配项啊?前边不是特意加了rpm专用的仓库地址吗?一脸懵逼之后,目前只有这个更新rpm仓库脚本作为线索,打开搂一眼先

除了检查操作系统,就是生成了个仓库源的配置,再看一眼/etc/yum.repos.d/gitlab_gitlab-ce.repo

查到这里没找到任何头绪,并且再一次证明了百度的无能之后,回头求助网官的安装文档。

终于找到点有用的线索,看来确实是要改一下仓库地址,修改/etc/yum.repos.d/gitlab_gitlab-ce.repo,fedora28应该使用el7

再次安装gitlab-ce,果然第一个坑添上了

在等待一个400M的RPM下载安装完成之后,接下来官网安装说明告诉我们可以浏览服务见证奇迹了

事实证明,惊喜没有,惊吓要不要?

等一下,好象哪里不对,哥以前也是装过gitlab的,不是应该有个reconfigure的吗?不知道官网文档是怎么想的,把这么重要的步骤给吃了。没关系,自己动手,丰衣足食。

没走出十米远,第二个坑来了,好在提示的很明确,缺软件包,找一下

磨刀不误砍柴工,打好基础,继续上路,gitlab-ctl reconfigure走你。。。。。。。。。。。。。。。。。。。

然后迅速掉进第三坑

根据提示一顿搜索,这次度娘终于行了一把,大概的意思就是selinux安全检测没过(参考https://www.cnblogs.com/xiaoluo501395377/archive/2013/05/26/3100444.html),在简单了解了一下selinux的机制,以及restroecon等相关命令之后,开始我还想跟selinux支把两下,但很快就发现他山之石也是石头,还是简单粗暴的vi /etc/selinux/config ==> SELINUX=disabled(注意需要重启)

收拾好心情,继续上路,gitlab-ctl reconfigure之后走了很远,都说事不过三,现在三坑都添上了,也算够意思了,正当我准备收工的时候,一口老血吐在屏幕上,要不然这日志怎么都红了呢。。。。。。。

看这进度条,一点不夸张,这够得上天坑了吧。错误日志有1250行,为什么我知道这么清楚,因为日志太特么多了,翻屏根本就看不出来哪出的错,最后还是从/var/log/gitlab/reconfigre下边找到执行日志文件,搜索Error才找到具体错误信息

百度gitlab BCrypt::Errors::InvalidHash: invalid hash之后,并没有太合适的答案,除了了解到是使用ruby on rails做的系统以外,还有的文章说,要启动gitlab的postgresql服务,确认/tmp目录是否可写

可是这些问题在我这里都没有,本着死马当活马医的不负责任态度,又执行了一次gitlab-ctl reconfigure,嘿,竟然成功了!!!

赶紧打开浏览器,让我感受一下管理员登录的喜悦

好象不对,为什么没有root用户修改口令功能?一股不详的预感在心中慢慢升起。注册个新用户试试。。

果然黑线了。在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路在fedora28上安装gitlab的添坑之路,让你们感受一下我当时的心情,另外我心里还有一万只神兽在奔跑。

回想之前reconfigure时,migrate db环节报的错,难道是数据库有问题?可是我之前在fedora25上安装过呀,当时一个坑都没有。

为了验证我不是失忆症患者,立马重新装了一个fedora25,然后在fedora25上安装了一遍gitlab,你猜怎么着?一下就成功了,下就成功了,就成功了,成功了,功了,了。。。。。。。

这才是系统第一次被访问时的页面!!!一个坑都没有就OK了。fedora28你是不是敌人派来玩我的?

吐槽归吐槽,问题还得解决,想来想去,还是从数据库入手。即然fedora25上的数据库可用,那就把好用的库整个备份恢复到fedora28上好了。

别问我怎么知道数据库参数的,postgresql的用法就不在这里罗嗦了(不熟的同学可以参考https://blog.csdn.net/joinplay/article/details/47833759)。再次访问,芝麻~~~~~开门

哈,熟悉的页面出现了,指定root账号口令,点击“change your password”按钮。oops,又挂了。

根据gitlab-ctl tail报告,还是BCrypt问题

看来想绕过问题还是too young too naive了,难道这么明显的问题一直没人解决吗?不就是BCrypt::Errors::InvalidHash (invalid hash)吗?先来查一下BCrypt是何方神圣?

原来如北,果然是个独立的软件包,接下来直接请出程序猿的真爱stack overflow,象这种关于高科技的问题,百度就不要出来丢人现眼了,没有比较就没有伤害。

不看不知道,一看吓一跳,这个HASH肯定是哔了狗了

这修改方案也真是脚疼医脚(作者原话“This is really a uggly hack”),详细描述参考s-t-a-c-k-o-v-e-r-f-l-o-w.com/questions/50213071/why-does-bcrypt-no-longer-accept-hashes

有了方案,继续动手,修改/opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/bcrypt-3.1.11/lib/bcrypt/engine.rb,“__bc_crypt(secret.to_s, salt)”==>“__bc_crypt(secret.to_s, salt).gsub(/(\n|\x00).*/, '')”

恢复gitlab环境(gitlab-ctl uninstall)

重新配置(gitlab-ctl reconfigure)

浏览gitlab,修改管理员口令

修改口令成功,使用刚修改的口令,登录系统

终于修成正果了。虽然补丁糙了点,但不管黑猫白猫,能抓老鼠的就是好猫。经比对,fedora25上的“/opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/bcrypt-3.1.11”与fedora28上的一毛一样!!!好吧,fedora28,你赢了!!!

2. 结论

回头看,fedora28上安装gitlab(10.8.3)的要点如下,红色部分为官方文档以外要补充的:

dnf install -y curl policycoreutils-python openssh-server

systemctl enable sshd

systemctl start sshd

firewall-cmd --permanent --add-service=http

systemctl reload firewalld

dnf install -y policycoreutils-python-utils

dnf install postfix

systemctl enable postfix

systemctl start postfix

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

vi /etc/yum.repos.d/gitlab_gitlab-ce.repo [fedora/28==>el/7]

EXTERNAL_URL="gitlab.yourdomain.com" dnf install -y gitlab-ce

vi /etc/selinux/config [SELINUX=enforcing ==> SELINUX=disabled]

reboot

vi /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/bcrypt-3.1.11/lib/bcrypt/engine.rb [__bc_crypt(secret.to_s, salt) ==>__bc_crypt(secret.to_s, salt).gsub(/(\n|\x00).*/, '')]

gitlab-ctl reconfigure

在fedora28上安装gitlab的添坑之路相关推荐

  1. kubernetes安装_在 Kubernetes 上安装 Gitlab CI Runner

    在 Kubernetes 上安装 Gitlab CI Runner​www.qikqiak.com 上节课我们使用 Helm 快速的将 Gitlab 安装到了我们的 Kubernetes 集群中,这节 ...

  2. Phalcon在Windows上安装 《Phalcon入坑指南系列 一》

    Phalcon入坑指南 本系列目录 前言 一.安装 二.Phalcon 开发工具安装 三.环境变量配置 四.Phalcon 开发工具的使用 生成项目框架 生成控制器 / 模型 夸一下phalcon 五 ...

  3. CentOS 7.5上安装 GitLab 最新版CE/EE

    CentOS 7.5上安装 GitLab 最新版CE/EE 安装系统要求 参见:https://docs.gitlab.com/ee/install/requirements.html 前提准备 1. ...

  4. python无法安装tensorflow_Windows上安装Tensorflow踩的坑

    前言 看到Rstudio中开始支持Tensorflow,本人是欣喜若狂的,同时TensorFlow官网从16年9月低开始支持windows安装了,不免想试试在自己的Windows上用R跑跑tensor ...

  5. linux的iso镜像机没有redis,在Linux系统上安装Redis【避坑篇】

    redis官网下载地址,当前稳定版本是6.0.0. redis的下载 具体下载方式依照当前网页下面提供的命令即可: # 下载及安装 wget http://download.redis.io/rele ...

  6. 在mac上安装gitlab

    参考链接: https://www.cnblogs.com/floodwater/p/10138265.html 注意事项: 在安装gitlab-ce时,配置hostname域名后,通过域名访问git ...

  7. 关于win10基础上安装ubuntu遇到的坑

    起初制作U盘启动器安装ubuntu18.16都失败了,后来通过使用easyeffi模拟创建启动项安装linux mint,安装成功,但是引导丢失了结果失败.于是把模拟制作的启动盘里的mint系统删除, ...

  8. 安装特定版本的keras_Win10上安装Keras 和 TensorFlow(GPU版本)

    一. 安装环境 Windows 10 64bit  家庭版 GPU: GeForce GTX1070 Python: 3.5 CUDA: CUDA Toolkit 8.0 GA1 (Sept 2016 ...

  9. 群晖docker安装cms_Nas码农篇:群晖Docker安装Gitlab

    Git大多数码农来说都很熟悉,团队协作开发必备.今天来分享下在群晖Docker上安装gitlab. 群晖上安装gitlab有两种方式,一种是直接安装套件中心的gitlab,另一种是在docker中自定 ...

最新文章

  1. python最新版本-最新版Python 3.8.6 版本发布
  2. win7的python3.5安装numpy包
  3. XML 读写(命名空间)
  4. python 等待其他线程执行完_面试官:如何让线程顺序执行,join,还有其他办法吗?...
  5. hive避免MR的情况
  6. excel三维地图数据源引用无效_Excel函数公式应用的基础,数据源的引用,动图解释...
  7. pcl画圆球_PCL之轨迹绘制(二)
  8. 江苏省计算机一级考试基础知识,江苏省计算机一级考试大纲及复习指南
  9. 【STM32】FLASH擦写+FLASH相关操作+注意事项
  10. GitHub与Git区别,Git与SVN区别,Git国内镜像下载
  11. poj2280--Amphiphilic Carbon Molecules(扫描线+极角排序+转换坐标)
  12. 洛谷 P2578 [ZJOI2005]九数码游戏【bfs+康托展开】
  13. Smart200控制台达B2伺服做点动回原点和绝对定位等一些列动作,程序由SmartV2.4版本编写
  14. python调用通达信函数用户指标_通达信自定义指标调用
  15. BC95(ML5515)连接TCP流程
  16. PC端/电脑端有没有识别二维码并分类的工具
  17. 长文详解材料阻燃性能试验方法
  18. Lua 实现Get Set属性
  19. 【渝粤教育】电大中专跨境电子商务理论与实务 (22)作业 题库
  20. 高数笔记(三):函数的连续性和间断性,闭区间上连续函数的性质

热门文章

  1. 麒麟安装代码比较工具失败总结
  2. smoj2806建筑物
  3. PTA:8-1 矩阵运算(分数 20)与8-2 输出大写英文字母(分数 15)
  4. 智慧校园大数据云平台(1)
  5. 【Linux】杀不掉进程
  6. Kafka: Native memory allocation (mmap) failed to map
  7. ZBrush动态网格与自动拓扑的区别?
  8. Java字符串分割函数split
  9. lsof 源码下载地址,旧版本
  10. 【淘宝客服的制胜法宝:投诉处理篇】