由于内部的Ldap认证服务器硬盘坏掉了,导致在上面跑的Ldap服务无法对Jenkins和Gitlab平台做集中认证了,导致在Gitlab上的帐号无法登陆到平台上,也就无法提交拉取代码了。
解决思路:
方法一、重新配置一个Ldap服务把之前的数据库导进来,迁移到新的机器上然后修改Gitlab的认证服务地址。
方法二、直接修改Gitlab的数据库,对帐号的认证方式修改。
因为之前的Ldap平台在Centos6系统上,现在大部分系统都在7系了,然而在Centos7的系统中做了一个安装测试遇到了一些问题,导致这个方法不能快速解决问题,所以选择了第二种方法。
操作过程
修改gitlab的数据库配置,开启远程访问(默认本机访问)
重启数据库服务
关闭远程访问权限
1、 修改配置文件,添加最后两行:/var/opt/gitlab/postgresql/data/pg_hba.conf
[root@Code1 ~]# egrep -v "^#|^$" /var/opt/gitlab/postgresql/data/pg_hba.conf
local all all peer map=gitlab
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 trust
2、修改配置文件: /var/opt/gitlab/postgresql/data/postgresql.conf
修改listen_addresses把它改成*号
listen_addresses = '*'
3、重启postgresql服务
gitlab-ctl restart postgresql
说明
像这样操作配置文件,然后直接重新启动postgresql数据库即可。如果是修改/etc/gitlab/gitlab.rb 配置文件的话就需要重新生成配置。所以不建议去修改/etc/gitlab/gitlab.rb文件。
使用Navicat工具连postgresql接数据库
如上图填写上gitlab 的Ip地址,下边的初始数据库gitlabhq_production和用户名都是默认的,密码为空。(所以要关闭远程连接)
连接上后,找到对应的表identities 修改对应的字段,其它就是把字段中的user_id修改掉,我这里做法就是把用户的user_id改成了负数,这样在Ldap认证时就找不到了。
更新后如果用户还存在登陆不了的问题,这时候可以让用户自己去Web端登陆gitlab,选择忘记密码,通过忘记密码来重新设置一个密码。(前提是你实现了密码找回功能)
最后修改完后记得要把远程的配置注释掉,或者删除了。重启postgresql服务即可。