gitlab更换公网IP地址,导致gitlab非常的很卡,并且ssh方式添加的远程仓库是无法git pull 或者git push,只有是添加http方式的可以正常git pull和git push
故障过程:
我将原来gitlab上的IP(1.1.1.1)地址去掉,更换了一个负载的IP(2.2.2.2)地址,原来的gitlab独立服务器,变成了通过访问git.bjstack.com然后走到公网的,最后解析到负载设备,负载设备判断域名,由相应的主机提供服务。我本以为迁移完成。但是1小时候,有开发陆续说git无法提交,提交就需要用户密码,但是这个用户密码是没有的。后来我建议他使用http方式。然后是成功的。但是每次都需要输入自己的用户名和密码。
到了下午5点的时候,所有开发都反应无法提交代码。git pull push 都是直接卡死。
这时候才反应过来,gitlab迁移后肯定是哪里没有调试好,故障了。
上来先各种百度,都说需要修改git的地址什么的
版本不一样地址也不一样,建议大家通过find查询相应的配置文件。
修改gitlab.yml(/opt/gitlab-6.7.3-1/apps/gitlab/htdocs/config/gitlab.yml)文件中的host地址
修改config.yml(/opt/gitlab-6.7.3-1/apps/gitlab/gitlab-shell/config.yml)文件中的gitlab_url
1.我们的gitlab配置的host地址是域名,也就是公网能解析的域名,这样的话跟gitlab的配置文件是没有关系的。
2.通过dig查询域名解析的时候,发现原来的地址还在上面,也就是老地址和新地址进行了负载轮训,当即上阿里云找出两个git的二级域名,赶紧取消老地址。然后再次查询是新地址没错,并且gitlab的访问速度明显上升了起来。但是还是只能通过http的方式git pull push 也就是ssh的方式还是不能使用。
最后在和我们的开发沟通中,他给了一个重要的提示,gitlab的ssh是通过22端口(如果使用默认端口),因为之前gitlab是独立服务器22端口肯定是能同的,但是现在修改为负载来进行调度,从而22端口肯定无法访问,这也就导致了通过ssh方式添加远程仓库的开发还是无法使用。
居然发现了问题,现在就开始解决,在负载均衡上添加一个tcp的调度,讲新地址的22端口调度到gitlab服务器的22端口,这样gitlab看起来像是独立的服务器,那么22端口自然就能够通信,最后在提交测试,瞬间提交。
此次迁移还是对于服务测试的不了解,迁移的时候不够细心,盲目的迁移导致故障的发生。