文章目录
- 一、Gitlab下载
- 1. Gitlab官网下载
- 二、分析思路
- 2.1. 分析
- 2.2. 代码托管平台
- 2.3. 镜像站
- 二、Gitlab 重新加载配置异常
- 2.1. 异常现象
- 2.2. 分析定位
- 三、百度解决问题
- 3.1. 百度类似异常
- 3.2. 参考博文
- 3.3. 解决方案
- 3.4. 执行测试
- 3.5. 结论
- 四、官网issues 01
- 4.1. 找官网issues
- 4.2. 官网issues搜索
- 4.3. issues筛选
- 4.4. issues 查阅
- 4.5. issues 分析
- 4.6. 服务器查阅
- 4.7. 结论
- 4.8. 用户创建分析
- 4.9. 问题协助
- 4.10. 无权限怎么办?
- 4.11. 协助途径
- 4.12. 重新加载配置
- 4.13. 结论
- 五、官网issues 02
- 5.1. 找官网issues
- 5.2. 官网issues搜索
- 5.3. issues筛选
- 5.4. issues 查阅
- 5.5. issues 分析
- 5.6. 服务器验证
- 5.7. 手动创建
- 5.8. 结果
- 5.9. 协助途径
- 六、目录权限问题
- 6.1. 异常分析
- 6.2. 寻找类似问题
- 6.3. 解决方案
- 6.4. 测试验证
- 6.5. 重新加载
- 6.6. 再次验证
- 七、防火墙问题
- 7.1. 异常分析
- 7.2. 分析定位
- 7.3. 解决方案
在内网环境往往有一些限制,这篇和大家分享一下我是如何分析这些问题的思路以及解决这些问题做的哪几方面工作。
一、Gitlab下载
声明:Gitlab官网对 Centos/Red Hat 6.x 不再支持,最低支持Centos/Red Hat 7.x
1. Gitlab官网下载
Gitlab官网链接:https://about.gitlab.com/install/
二、分析思路
2.1. 分析
大家可以看到官网已经不再对以前 Centos/Red Hat 6.x 不支持了,那软件安装包应该去哪下载呢?
关于这个问题呢,和小伙伴们说一下我是如何以下几方面做分析参考哈!
- 1官网不支持安装还是,把历史版本下载的入口隐藏了呢,可以去找一找,万一找到了呢?
官网默认只显示最新版本的软件,但是,会有一个查看历史版本的入口,显示的位置不明显。
例如:zookeeper
https://zookeeper.apache.org/releases.html
但是,Gitlab以前的软件版本在官网确实没有找到类似这样的入口
关于遇到官网下载以前历史软件不再支持下载和说明的事项?
和小伙伴们分享我是如何处理的思路与君共勉哈!
2.2. 代码托管平台
这样的开源软件在开源的代码托管平台是否还维护呢?或者有没有小伙伴fork这种项目呢?这种方式需要你了解,开源的代码托管平台有哪些?还要花费一些时间去找呢?(先往下阅读)
常用的代码托管平台:
- 1 码云:https://gitee.com/explore
- 2 GitHub:https://github.com
- 3 开源中国:https://www.oschina.net
- 4 Gitlab:https://about.gitlab.com
2.3. 镜像站
常见的镜像站有哪些呢?
- 1 清华大学开源软件镜像站 :https://mirrors.tuna.tsinghua.edu.cn
- 2 华为:https://mirrors.huaweicloud.com
- 3 阿里云:http://mirrors.aliyun.com/pypi/simple/
- 4 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
我用到的清华大学开源软件镜像站
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/
到目前为止,解决了软件下载的问题!!!
以前的安装方式应该去哪找呢?以前的安装方式在现在的服务器上是否还适用呢?
和小伙伴本分享一下:我的思路哈!
不管好不好使,能不能用,先去网上找资料,假设安装方式能用、好试,先去尝试做,不要停留在想遇到这个问题怎么办?遇到再说呗!总之一句话,万事想做,就先想着能做成的思想再去做事,这样你就很有信心去做事,一般都能做成!
二、Gitlab 重新加载配置异常
2.1. 异常现象
Gitlab 安装完成后,需要做一些配置,配置完成后,需要重新加载配置,让配置生效!
执行重新加载配置命令
# 重新加载Gitlab配置,并启动服务
sudo gitlab-ctl reconfigure
抛出异常
- 异常信息:
很长,但是异常信息中有关于group、user、username
的字眼
类似这二种情况:
第一种:
gitlab Error executing action create
on resource 'linux_user[Webserver use
第二种:
GitLab Error: Error executing action create
on resource 'group[gitlab-www]'
2.2. 分析定位
根据上述信息,可以知道该类异常属于创建用户或者用户组
系列异常,遇到异常或者问题一般有2种解决方向:
-
- 百度
-
- 官网issues
三、百度解决问题
3.1. 百度类似异常
- 寻找类似异常
通过百度找到了
3.2. 参考博文
- 参考这篇博文:
搭建git 服务器出现 Error executing actioncreate
on resource ‘user[GitLab user and group]’
3.3. 解决方案
- 解决方案
3.4. 执行测试
# 编辑gitlab.rb
vim /etc/gitlab/gitlab.rb# 添加内容(制定用户组合用户)
user['username'] = "gitlab"
user['group'] = "gitlab# 再次重新加载Gitlab配置
sudo gitlab-ctl reconfigure
3.5. 结论
没有效果,依然报错
四、官网issues 01
关于一些开源软件或者开源项目,我的习惯就先去
官网issues
去找,我一般会这样想,问题既然我遇到了,那小伙伴们是不是早就遇到了遇到了呢,如果遇到了会节省我解决问题的时间对吧!
issues 分为Open 、Closed 、ALL三种
搜索方式有下拉框这几种,如果不会,那就直接搜索关键词或者字
下面和大家分享第一种:Open
4.1. 找官网issues
https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/
4.2. 官网issues搜索
4.3. issues筛选
- 1 https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6217
4.4. issues 查阅
4.5. issues 分析
# 原文
What is the current bug behavior?
gitlab-www user createdWhat is the expected correct behavior?
gitlab-www user not created# 中文
其实就是gitlab-www用户没有创建
4.6. 服务器查阅
# 查阅用户列表
cat /etc/passwd
4.7. 结论
确实gitlab-www用户
没有创建
4.8. 用户创建分析
用户没有创建一般有二方面情况:
第一种:没有执行创建gitlab-www用户
的命令
第二种:执行创建gitlab-www用户
的命令,但是,无权限创建
4.9. 问题协助
在公司中遇到这种权限问题,先思考以下问题事项:
- 1 操作用户是否有权限操作创建用户的命令
- 2 有权限,是否可以执行创建用户的命令
和小伙伴们分享我的解决流程:
- 先确认我使用的操作用户是哪个用户?我的是root用户
- 我使用的root是否可以在此服务器上执行创建用户?和领导沟通可以创建
- 检查是否有执行有创建用户的权限?没有(系统处对root用户做了限制)
[root@~]#useradd gitlab-www
-bash: useradd: command not found
[root@~]#
4.10. 无权限怎么办?
- 无权限创建用户组合用户
关于权限这个事项,我用的是root用户,按道理说root属于最高权限的用户为何无法创建用户呢?找到创建和配置服务器的当事人或者寻求系统处同事协助,由于公司的服务器,我们只有使用的权限,关于基础核心组件的配置我们是不能有权限操作的。
4.11. 协助途径
经验分享:
小伙伴们,可以创建先别着急创建哈,我只是验证是否有权限执行创建用户和用户组的命令权限。给大家分享一个技巧,如果官网没让你做其他操作,就不要执行额外的操作,这样会影响默认的配置。
然后通过邮件的形式和相关处室人员,把事项描述清楚,相关人员协助配置了权限,可以创建用户和用户组了
[root@~]#useradd
Usage: useradd [options] LOGINuseradd -Duseradd -D [options]Options:-b, --base-dir BASE_DIR base directory for the home directory of thenew account-c, --comment COMMENT GECOS field of the new account-d, --home-dir HOME_DIR home directory of the new account-D, --defaults print or change default useradd configuration-e, --expiredate EXPIRE_DATE expiration date of the new account-f, --inactive INACTIVE password inactivity period of the new account-g, --gid GROUP name or ID of the primary group of the newaccount-G, --groups GROUPS list of supplementary groups of the newaccount
4.12. 重新加载配置
# 重新执行还是报错
sudo gitlab-ctl reconfigure
4.13. 结论
仍然报错,但是,不是以前的那个错误了,比较激动哈!!!为何还不行是吧!别着急!先学习我的解决思路,这是关键,对小伙伴们的帮助会很大的!
五、官网issues 02
关于一些开源软件或者开源项目,我的习惯就先去
官网issues
去找,我一般会这样想,问题既然我遇到了,那小伙伴们是不是早就遇到了遇到了呢,如果遇到了会节省我解决问题的时间对吧!
issues 分为Open 、Closed 、ALL三种
搜索方式有下拉框这几种,如果不会,那就直接搜索关键词或者字
下面和大家分享第一种:Closed
5.1. 找官网issues
https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/
5.2. 官网issues搜索
5.3. issues筛选
5.4. issues 查阅
5.5. issues 分析
https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/1252
根据官网issues
的说法就是在/etc/gitlab/gitlab.rb
文件中的web_server['external_users']
配置中配置了很多用户
5.6. 服务器验证
但是实际用户在服务上不存在,但是我的什么都没配置
5.7. 手动创建
- 你可以手动配置用户组合用户,那就手动创建gitlab组合gitlab用户呗
5.8. 结果
无法创建用户和用户组
到这我预想,是不是Gitlab在安装配置的时候,会创建用户和用户组,启动会使用着一些用户和用户组去执行某些操作。答案:是的
- 这是执行的截图
5.9. 协助途径
请参考上面第四标题讲述的方案
六、目录权限问题
6.1. 异常分析
根据截图可以看出还是权限问题,那又该如何配置权限呢?
service[node-exporter] (dynamically defined) had an error: Mixlib::ShellOut:
那就百度呗
6.2. 寻找类似问题
6.3. 解决方案
从以下信息似乎找到了,那就试试呗
这是我用到的本文链接:
storage_directory[/var/opt/gitlab/.ssh](gitlab::gitlab-shell line 38)had an error:Mixlib::shellout::
6.4. 测试验证
执行以下命令
chmod +x /var/opt/gitlab/
chmod +x /var/opt/
chmod +x /var/
6.5. 重新加载
# 重新执行
sudo gitlab-ctl reconfigure
6.6. 再次验证
- 这是Gitlab安装成功之后,验证的结果如下所示:
cat /etc/passwd
gitlab:x:507:507::/home/gitlab:/bin/bash
gitlab-www:x:496:492::/var/opt/gitlab/nginx:/bin/false
git:x:495:491::/var/opt/gitlab:/bin/sh
gitlab-redis:x:494:490::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:493:489::/var/opt/gitlab/postgresql:/bin/sh
gitlab-prometheus:x:492:488::/var/opt/gitlab/prometheus:/bin/sh
cat /etc/group
cgred:x:493:
gitlab-www:x:492:
gitlab:x:507:
git:x:491:
gitlab-redis:x:490:
gitlab-psql:x:489:
gitlab-prometheus:x:488:
终于成功了!哈哈!!!
七、防火墙问题
7.1. 异常分析
软件安装配置成功了,但是,浏览器访问404
7.2. 分析定位
这种情况一般有几种情况:
- 1 服务没有正常启动
- 服务正常启动,但是,防火墙没开
7.3. 解决方案
配置防火墙
具体配置方案,请参考以下博文:
Centos/Red Hat6.8 安装、配置、启动Gitlab (内网环境)
补充:
# 查看Gitlab的运行状态
[root@app]#sudo gitlab-ctl status
run: alertmanager: (pid 129164) 3183s; run: log: (pid 128237) 3250s
run: gitaly: (pid 128695) 3217s; run: log: (pid 126710) 3412s
run: gitlab-monitor: (pid 129097) 3185s; run: log: (pid 127981) 3269s
run: gitlab-workhorse: (pid 128730) 3216s; run: log: (pid 127383) 3334s
run: logrotate: (pid 127449) 3323s; run: log: (pid 127466) 3321s
run: nginx: (pid 127405) 3329s; run: log: (pid 127424) 3326s
run: node-exporter: (pid 27698) 0s; run: log: (pid 127524) 3316s
run: postgres-exporter: (pid 129189) 3182s; run: log: (pid 128476) 3244s
run: postgresql: (pid 126862) 3404s; run: log: (pid 126879) 3401s
run: prometheus: (pid 129128) 3184s; run: log: (pid 128147) 3256s
run: redis: (pid 126636) 3421s; run: log: (pid 126655) 3420s
run: redis-exporter: (pid 129105) 3185s; run: log: (pid 128072) 3262s
run: sidekiq: (pid 127317) 3341s; run: log: (pid 127333) 3339s
run: unicorn: (pid 127261) 3348s; run: log: (pid 127292) 3345s
[root@app]#