Jenkins 在发布到 Nexus Repo 时抛出 NPM 错误代码 403
Jenkins throwing NPM err code 403 when publishing to Nexus Repo
我在部署到 nexus 时遇到了这个奇怪的错误。
npm i
npm ERR! code E403
npm ERR! 403 Forbidden: express@^4.16.3
最后神器的地方它会不时变化(我的意思是,并不总是express@^4.16.3)
到目前为止我已经检查过的东西。
我可以使用上传时定义的用户名和密码通过浏览器登录 Nexus。
我可以使用上传时定义的用户名和密码通过 shell 登录到 Nexus 存储库。
我可以使用本地 shell 并使用相同的凭据上传包。
在执行过程中,我执行了 curl -v repo-url 并且得到了正确的响应(所以我假设我有网络连接)。
我检查过是否是代理,确实有。
我删除了代理配置
我换了另一个代理
我添加了一个无代理变量,所以我可以排除 Nexus URL Repo
的 FQDN
我还检查了包(在本例中为 express@^4.16.3)是否存在于 Nexus 上,它确实存在。
但在所有情况下,最后我仍然收到 403 错误。
提供更多背景信息。
这是使用詹金斯。
并以我正在部署的新关系为目标。
如果我使用旧的 nexus,我就没有这个问题。只发生在新版本
而且,我迁移了所有数据,因此旧 Nexus 中存在的同一用户在新 Nexus 中,您可以使用这些凭据登录。
我检查了 nexus.log
、request.log
和 Jenkins 日志,但没有发现任何错误。
Jenkins 和“old nexus”以 docker 形式安装在同一台服务器中
“New nexus”安装在另一台服务器上,也是作为容器。
从服务器我在它们之间建立了网络连接(可以对它们执行 ping 操作,检查端口,并将 curl 连接到 URLs。
我已将 nx-admin 角色授予配置的用户。
还是一样的错误。
虽然 Jenkins 作业是 运行,但我让 Nexus 日志查看器保持打开状态
Nexus 日志查看器中没有错误或登录。
但是,我设法在 Jenkins 中找到以下日志:JENKINS_HOME/.npm/_logs/timestamp-debug.log
我有错误 403,并得到以下信息
jenkins@hostname:~/.npm/_logs$ cat timestamp-debug.log
0 info it worked if it ends with ok
1 verbose cli [ '/var/jenkins_home/tools /jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/bin/node',
1 verbose cli '/var/jenkins_home/tools /jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/bin/npm',
1 verbose cli 'i' ]
2 info using npm@5.6.0
3 info using node@v8.9.4
4 verbose npm-session 609c979f77769373
5 silly install runPreinstallTopLevelLifecycles
6 silly preinstall api-docs@1.0.0
7 info lifecycle api-docs@1.0.0~preinstall: api-docs@1.0.0
8 silly install loadCurrentTree
9 silly install readLocalPackageData
10 silly install loadIdealTree
11 silly install cloneCurrentTreeToIdealTree
12 silly install loadShrinkwrap
13 silly install loadAllDepsIntoIdealTree
14 http fetch GET 403 http://nexus-url/repository/my-repo-npm/express 2096ms
15 silly fetchPackageMetaData error for express@^4.16.3 403 Forbidden: express@^4.16.3
16 http fetch GET 403 http://nexus-url/repository/my-repo-npm/http-server 2094ms
17 http fetch GET 403 http://nexus-url/repository/my-repo-npm/swagger-ui-express 2092ms
18 silly fetchPackageMetaData error for http-server@^0.11.1 403 Forbidden: http-server@^0.11.1
19 silly fetchPackageMetaData error for swagger-ui-express@^4.0.1 403 Forbidden: swagger-ui-express@^4.0.1
20 http fetch GET 403 http://nexus-url/repository/my-repo-npm/multi-file-swagger 2095ms
21 silly fetchPackageMetaData error for multi-file-swagger@2.2.0 403 Forbidden: multi-file-swagger@2.2.0
22 http fetch GET 403 http://nexus-url/repository/my-repo-npm/express 45ms
23 silly fetchPackageMetaData error for express@^4.16.3 403 Forbidden: express@^4.16.3
24 http fetch GET 403 http://nexus-url/repository/my-repo-npm/http-server 46ms
25 silly fetchPackageMetaData error for http-server@^0.11.1 403 Forbidden: http-server@^0.11.1
26 http fetch GET 403 http://nexus-url/repository/my-repo-npm/multi-file-swagger 48ms
27 silly fetchPackageMetaData error for multi-file-swagger@2.2.0 403 Forbidden: multi-file-swagger@2.2.0
28 http fetch GET 403 http://nexus-url/repository/my-repo-npm/swagger-ui-express 49ms
29 silly fetchPackageMetaData error for swagger-ui-express@^4.0.1 403 Forbidden: swagger-ui-express@^4.0.1
30 silly saveTree api-docs@1.0.0
31 verbose stack Error: 403 Forbidden: express@^4.16.3
31 verbose stack at fetch.then.res (/var/jenkins_home/tools /jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/fetch.js:42:19)
31 verbose stack at tryCatcher (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
31 verbose stack at Promise._settlePromiseFromHandler (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
31 verbose stack at Promise._settlePromise (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
31 verbose stack at Promise._settlePromise0 (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
31 verbose stack at Promise._settlePromises (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
31 verbose stack at Async._drainQueue (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:133:16)
31 verbose stack at Async._drainQueues (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:143:10)
31 verbose stack at Immediate.Async.drainQueues (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
31 verbose stack at runCallback (timers.js:789:20)
31 verbose stack at tryOnImmediate (timers.js:751:5)
31 verbose stack at processImmediate [as _immediateCallback] (timers.js:722:5)
32 verbose cwd /var/jenkins_home/jobs/CUSTOM/workspace
33 verbose Linux 4.4.21-69-default
34 verbose argv "/var/jenkins_home/tools /jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/bin/node" "/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/bin/npm" "i"
35 verbose node v8.9.4
36 verbose npm v5.6.0
37 error code E403
38 error 403 Forbidden: express@^4.16.3
39 verbose exit [ 1, true ]
我在我的 Nexus Repo 上寻找这个包
express@^4.16.3
http-server@^0.11.1
swagger-ui-express@^4.0.1
multi-file-swagger@2.2.0
发现我没有得到其中的一些,所以我下载了它们并上传到 repo。
我也重新运行了作业,但仍然出现同样的错误。
即使在服务器和容器级别配置代理也没有用。
我发现 Jenkins 在应用程序级别有一个代理配置。
所以我进入 Jenkins 的管理部分并正确配置了代理。完成后,一切都开始工作了。
我在部署到 nexus 时遇到了这个奇怪的错误。
npm i
npm ERR! code E403
npm ERR! 403 Forbidden: express@^4.16.3
最后神器的地方它会不时变化(我的意思是,并不总是express@^4.16.3)
到目前为止我已经检查过的东西。
我可以使用上传时定义的用户名和密码通过浏览器登录 Nexus。 我可以使用上传时定义的用户名和密码通过 shell 登录到 Nexus 存储库。
我可以使用本地 shell 并使用相同的凭据上传包。
在执行过程中,我执行了 curl -v repo-url 并且得到了正确的响应(所以我假设我有网络连接)。
我检查过是否是代理,确实有。 我删除了代理配置 我换了另一个代理 我添加了一个无代理变量,所以我可以排除 Nexus URL Repo
的 FQDN我还检查了包(在本例中为 express@^4.16.3)是否存在于 Nexus 上,它确实存在。
但在所有情况下,最后我仍然收到 403 错误。
提供更多背景信息。 这是使用詹金斯。
并以我正在部署的新关系为目标。 如果我使用旧的 nexus,我就没有这个问题。只发生在新版本
而且,我迁移了所有数据,因此旧 Nexus 中存在的同一用户在新 Nexus 中,您可以使用这些凭据登录。
我检查了 nexus.log
、request.log
和 Jenkins 日志,但没有发现任何错误。
Jenkins 和“old nexus”以 docker 形式安装在同一台服务器中 “New nexus”安装在另一台服务器上,也是作为容器。
从服务器我在它们之间建立了网络连接(可以对它们执行 ping 操作,检查端口,并将 curl 连接到 URLs。
我已将 nx-admin 角色授予配置的用户。 还是一样的错误。
虽然 Jenkins 作业是 运行,但我让 Nexus 日志查看器保持打开状态
Nexus 日志查看器中没有错误或登录。
但是,我设法在 Jenkins 中找到以下日志:JENKINS_HOME/.npm/_logs/timestamp-debug.log
我有错误 403,并得到以下信息
jenkins@hostname:~/.npm/_logs$ cat timestamp-debug.log
0 info it worked if it ends with ok
1 verbose cli [ '/var/jenkins_home/tools /jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/bin/node',
1 verbose cli '/var/jenkins_home/tools /jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/bin/npm',
1 verbose cli 'i' ]
2 info using npm@5.6.0
3 info using node@v8.9.4
4 verbose npm-session 609c979f77769373
5 silly install runPreinstallTopLevelLifecycles
6 silly preinstall api-docs@1.0.0
7 info lifecycle api-docs@1.0.0~preinstall: api-docs@1.0.0
8 silly install loadCurrentTree
9 silly install readLocalPackageData
10 silly install loadIdealTree
11 silly install cloneCurrentTreeToIdealTree
12 silly install loadShrinkwrap
13 silly install loadAllDepsIntoIdealTree
14 http fetch GET 403 http://nexus-url/repository/my-repo-npm/express 2096ms
15 silly fetchPackageMetaData error for express@^4.16.3 403 Forbidden: express@^4.16.3
16 http fetch GET 403 http://nexus-url/repository/my-repo-npm/http-server 2094ms
17 http fetch GET 403 http://nexus-url/repository/my-repo-npm/swagger-ui-express 2092ms
18 silly fetchPackageMetaData error for http-server@^0.11.1 403 Forbidden: http-server@^0.11.1
19 silly fetchPackageMetaData error for swagger-ui-express@^4.0.1 403 Forbidden: swagger-ui-express@^4.0.1
20 http fetch GET 403 http://nexus-url/repository/my-repo-npm/multi-file-swagger 2095ms
21 silly fetchPackageMetaData error for multi-file-swagger@2.2.0 403 Forbidden: multi-file-swagger@2.2.0
22 http fetch GET 403 http://nexus-url/repository/my-repo-npm/express 45ms
23 silly fetchPackageMetaData error for express@^4.16.3 403 Forbidden: express@^4.16.3
24 http fetch GET 403 http://nexus-url/repository/my-repo-npm/http-server 46ms
25 silly fetchPackageMetaData error for http-server@^0.11.1 403 Forbidden: http-server@^0.11.1
26 http fetch GET 403 http://nexus-url/repository/my-repo-npm/multi-file-swagger 48ms
27 silly fetchPackageMetaData error for multi-file-swagger@2.2.0 403 Forbidden: multi-file-swagger@2.2.0
28 http fetch GET 403 http://nexus-url/repository/my-repo-npm/swagger-ui-express 49ms
29 silly fetchPackageMetaData error for swagger-ui-express@^4.0.1 403 Forbidden: swagger-ui-express@^4.0.1
30 silly saveTree api-docs@1.0.0
31 verbose stack Error: 403 Forbidden: express@^4.16.3
31 verbose stack at fetch.then.res (/var/jenkins_home/tools /jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/fetch.js:42:19)
31 verbose stack at tryCatcher (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
31 verbose stack at Promise._settlePromiseFromHandler (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
31 verbose stack at Promise._settlePromise (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
31 verbose stack at Promise._settlePromise0 (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
31 verbose stack at Promise._settlePromises (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
31 verbose stack at Async._drainQueue (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:133:16)
31 verbose stack at Async._drainQueues (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:143:10)
31 verbose stack at Immediate.Async.drainQueues (/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
31 verbose stack at runCallback (timers.js:789:20)
31 verbose stack at tryOnImmediate (timers.js:751:5)
31 verbose stack at processImmediate [as _immediateCallback] (timers.js:722:5)
32 verbose cwd /var/jenkins_home/jobs/CUSTOM/workspace
33 verbose Linux 4.4.21-69-default
34 verbose argv "/var/jenkins_home/tools /jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/bin/node" "/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/Node_8.9.4/bin/npm" "i"
35 verbose node v8.9.4
36 verbose npm v5.6.0
37 error code E403
38 error 403 Forbidden: express@^4.16.3
39 verbose exit [ 1, true ]
我在我的 Nexus Repo 上寻找这个包
express@^4.16.3
http-server@^0.11.1
swagger-ui-express@^4.0.1
multi-file-swagger@2.2.0
发现我没有得到其中的一些,所以我下载了它们并上传到 repo。
我也重新运行了作业,但仍然出现同样的错误。
即使在服务器和容器级别配置代理也没有用。 我发现 Jenkins 在应用程序级别有一个代理配置。
所以我进入 Jenkins 的管理部分并正确配置了代理。完成后,一切都开始工作了。