老的jenkins上在新的gitlab上拉取代码失败

老的gitlab是yum装的,新的gitlab是rancher跑的,开发往新的gitlab上传代码也能成功。
jenkins服务器的ssh在新的gitlab配置好,新的gitlab的token在jenkins凭证里添加成功,且在系统设置里git那里新增了新的gitlab域名信息。jenkins的任务里选到了新的gitlab,且在流水线选了新的gitlab,但是在jenkins走流水线时拉取新的gitlab代码失败。麻烦大佬给下建议,是少了哪些的操作,谢谢。报错信息如下:
stdout:
stderr: ssh: connect to host newgit.xx.com port 22: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights

根据你目前提供的信息,可以确认你的新gitlab是在k8s集群内部,而错误提示是22号端口连接超时。那么问题就可能出在gitlab实例的22端口访问上,目前不太清楚你是怎么对外暴露端口的,可以提供这部分信息吗?另外你在本地使用git clone 加上ssh开头的地址是否能够拉取下来?

刚刚把gitlab宿主机的22端口开出来了,现在是 telnet newgit.xx.com 22 能通了,然后还操作了jenkins的ssh公钥复制到gitlab的容器里,现在执行 ssh git@newgit.xx.com -p22是要求输入密码,jenkins跑流水线是报:
No credentials specified
Cloning the remote Git repository
Cloning repository git@newgit.xx.com:cblisp/rhcblisp.git

/usr/local/git/bin/git init /home/rhjcuser/.jenkins/workspace/rhcblisp # timeout=10
Fetching upstream changes from git@newgit.xxx.com:cblisp/rhcblisp.git
/usr/local/git/bin/git --version # timeout=10
/usr/local/git/bin/git fetch --tags --force --progress – git@newgit.xxx.com:cblisp/rhcblisp.git +refs/heads/:refs/remotes/origin/ # timeout=10
ERROR: Error cloning remote repo ‘origin’
hudson.plugins.git.GitException: Command “/usr/local/git/bin/git fetch --tags --force --progress – git@newgit.xx.com:cblisp/rhcblisp.git +refs/heads/:refs/remotes/origin/” returned status code 128:
stdout:
stderr: Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

就我现在的情况,需要怎么去改吗?

jenkins的公钥不应该放到gitlab的容器里,而是应该通过添加ssh-key的方式添加到某个账号下,然后通过这个账号的账号密码,或者access token来拉取代码。

gitlab的token,在jenkins页面也加了的,凭证那里,然后新项目选的git是新的地址,流水线也改成了新的git地址

你的jenkins流水线里,配置的gitlab credentials是哪个用户的信息?按你的说法,添加了gitlab的token到jenkins的凭证里,你这里的token指的是用户的access token还是别的token。因为jenkins拉取git代码使用的credentials一般要么是用户名密码,要么是用户名+access token。我限制就怀疑是这里的配置有问题导致的

1、这里的token是gitlab管理员用户在Git页面创建的access token,然后拿这个token到jenkins的凭证里添加
2、jenkins流水线里的credentials用的是以前就创建好的,也就是新gitlab没有部署就存在的。是用户与密码

这个地方就有问题,如果你需要从新的gitlab上拉取代码,那么就应该使用access token创建的新凭证。旧的凭证只能用来访问旧的gitlab上的授权仓库信息。除非你的旧凭证对应的用户名和密码同步到了新的gitlab上,且具有对应仓库的访问权限。

是的,因为是升级操作,所以把之前的gitlab仓库全盘复制过去到新的Git上面

那你在新的gitlab管理员界面的用户管理里,可以看到凭证里对应的用户名吗?

没有,好奇怪,老的凭证用户在gitlab也好像没有

用户数据一般是在数据库里,你迁移数据的时候,直接拷贝文件,应该是没法迁移用户的。

1、gitlab-rake gitlab:backup:create #备份
2、gitlab-rake gitlab:backup:restore BACKUP=
是通过这步骤迁移数据的,应该没啥问题吧

理论上会把数据库备份过去,目前没法确认你的备份过程是否有问题。如果出现数据缺失,你得对比一下旧的gitlab,看缺失了多少。

如果要解决jenkins的问题,可以把旧的用户信息同步过来,也可以创建一个相同用户名,相同密码的账户。

大佬,那请问下,在老版本的yum装的基础上升级,会不会影响现有的jenkins拉取代码啊?

理论上是不影响,但是升级的时候建议查看官方推荐的升级路径,不要一下跨度太大。否则会出现各种意料之外的问题

大佬,12.10.14到13.0.14时,postgresql起不来。报错信息如下:
==> /var/log/gitlab/postgresql/current <==
2022-08-02_14:16:24.30755 FATAL: database files are incompatible with server
2022-08-02_14:16:24.30757 DETAIL: The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 11.7.
2022-08-02_14:16:25.32630 FATAL: database files are incompatible with server
2022-08-02_14:16:25.32633 DETAIL: The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 11.7.

请问,这个要怎么解决吗?网上的答案也解决不了呢

参考一下pg-upgrade命令的用法,升级数据库版本

执行过命令:sudo gitlab-ctl pg-upgrade -V 11

但是没有成功,没有当时的截图了