Jenkins deploy to container Pluginを使用して、リモートTomcat(リモートマシン)にWARをデプロイしようとしています。 Tomcat-users.xmlで次の設定を行いました
<user username="deployer" password="deployer" roles="manager-gui,manager-script,admin" />
Jenkins deployer containerプラグインで適切なユーザー名パスワードとポートを設定しました。ローカルTomcatのセットアップは正常に機能しています。しかし、リモートTomcatの場合、次のエラーが引き続き発生します。
Caused by: org.codehaus.cargo.container.Tomcat.internal.TomcatManagerException: The username you provided is not allowed to use the text-based Tomcat Manager (error 403) at org.codehaus.cargo.container.Tomcat.internal.TomcatManager.invoke(TomcatManager.Java:555)
at org.codehaus.cargo.container.Tomcat.internal.TomcatManager.list(TomcatManager.Java:686) at org.codehaus.cargo.container.Tomcat.internal.TomcatManager.getStatus(TomcatManager.Java:699) at org.codehaus.cargo.container.Tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.Java:174)
... 16 more Caused by: Java.io.IOException: Server returned HTTP response code: 403 for URL: http://1.203.190.5:8080/manager/text/list at Sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) at Sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
Source) at org.codehaus.cargo.container.Tomcat.internal.TomcatManager.invoke(TomcatManager.Java:544) ... 19 more
助けてください。
これはJenkinsのバグのようですが、Tomcatで次の設定を行うことで問題を回避できました。
ファイル/webapps/manager/META-INF/context.xmlを編集します。
前:
<Context antiResourceLocking="false" privileged="true">
<Valve className="org.Apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>
このファイルを変更して、値をコメント化します。
<Context antiResourceLocking="false" privileged="true">
<!--
<Valve className="org.Apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
これで問題は解決しました。これが誰かを助けることを願っています:)
コンテナプラグインを介してjenkinsを使用してTomcatにアーティファクトを展開しているときに、同じ問題に直面していました。アーティファクトを正常にデプロイし、manager-appで表示できるようにするのに役立ちます。
Tomcat 9では、manager-XXXロールを追加する必要はありません。ユーザーを追加し、manager-gui(GUIアクセス用)およびmanager-script(Jenkins deploymentのようなアクセス用)を割り当てるだけです。また、ファイルを編集してください/ webapps/manager/META-INF/context.xml、Valveをコメントアウトするかallow属性に適切なreg exを定義する