2017-01-16 2 views
9

Я пытаюсь развернуть WAR на удаленном Tomcat (удаленной машине), используя Jenkins для развертывания в контейнере Plugin , я сделал следующую конфигурацию в TOMCAT-users.xmlИмя пользователя, которое вы предоставили, не разрешено использовать текстовый Tomcat Manager (ошибка 403) при развертывании на удаленном Tomcat8 с помощью Jenkins

<user username="deployer" password="deployer" roles="manager-gui,manager-script,admin" />

меня правильно настроить имя пользователя пароль и порт в Дженкинс Установщик контейнера плагин. Настройка работает нормально для локального 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

Пожалуйста, помогите.

+0

Возможно, у введенного пользователя нет доступа для чтения/записи на удаленной машине. – RejeeshChandran

+0

Я проверил доступ. У пользователя есть доступ. – harshlal028

ответ

10

Это кажется ошибка Дженкинс, но я получил вокруг проблемы путем создания следующей конфигурации в 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>

Это решило проблему. Надеюсь, что это кому-то помогает :)

+0

Нет ошибок с Дженкинсом. По умолчанию Tomcat не разрешает доступ к диспетчеру с внешних компьютеров, то есть за исключением localhost. Это просто отключает это ограничение. Спасибо за помощь. – blur0224

+0

Я получаю jenkins-host> curl http: // tomcat-host: 8090/manager/text/list -u deployer Введите пароль для пользователя 'deployer': thepassword OK - Список приложений для виртуального хоста [localhost] /: running: 0: ROOT /manager: running: 0: manager , но «Имя пользователя, которое вы предоставили, не разрешено использовать текстовый Tomcat Manager (ошибка 403)», используя одно и то же имя пользователя через плагин разворачивания jenkins , Что можно сделать, чтобы получить 200 OK через дженкинсов? Проверено: когда пароль или имя пользователя плохо, я получаю 401 не 403 от завитка. –

2

Я столкнулся с той же проблемой при развертывании артефакта в tomcat с помощью jenkins через контейнерный плагин, Решение: - я добавил менеджерский скрипт и менеджер-gui в роли пользователя и предоставил полный доступ к каталогу webapps/*. Это помогает мне успешно развертывать артефакт и просматривать его с помощью менеджера-приложения.

+0

Спасибо, это ** простое решение **. – stom

+0

@stom благодарит за вашу оценку –