web-dev-qa-db-ja.com

Jenkinsを使用してリモートTomcat8にデプロイする場合、指定したユーザー名はテキストベースのTomcatマネージャーを使用できません(エラー403)

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

助けてください。

15
harshlal028

これは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>

これで問題は解決しました。これが誰かを助けることを願っています:)

22
harshlal028

コンテナプラグインを介してjenkinsを使用してTomcatにアーティファクトを展開しているときに、同じ問題に直面していました。アーティファクトを正常にデプロイし、manager-appで表示できるようにするのに役立ちます。

5
Rizwan Javid

何も動作しない場合は、magnager-scriptロールが割り当てられたTomcat-users.xmlファイルに別のユーザーを作成し、このユーザー資格情報をjenkinsに設定します。

Tomcat-users.xmlファイル内

<Tomcat-users>
<user  username="deployuser" password="deployuser" roles="manager-script" />
<user username="admin" password="admin" roles="manager-gui" />
</Tomcat-users>

deploying to Tomcat from jenkins

1
techasutos

Tomcat 9では、manager-XXXロールを追加する必要はありません。ユーザーを追加し、manager-gui(GUIアクセス用)およびmanager-script(Jenkins deploymentのようなアクセス用)を割り当てるだけです。また、ファイルを編集してください/ webapps/manager/META-INF/context.xml、Valveをコメントアウトするかallow属性に適切なreg exを定義する

0
jprism