Cap5. Dúvida ao configurar o job para ambientede aceite

Boa tarde, Boaglio.

Acabei pegando uma aplicação menor em maven e tinha conseguido fazer o build gerando o .war.

Agora to na parte de colocar num ambiente de aceite. Na configuração do job, na configuração pós build no container tá assim:

Talvez seja o caminho especificado errado no campo ¨Tomcat URL¨

Fui no arquivo /usr/local/apache-tomcat-8.0.27/conf e lá tá que a porta é 8080, achei estranho porque o jenkins também aponta pra essa porta.

Olha a saída:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.502 s
[INFO] Finished at: 2017-04-15T13:11:39-03:00
[INFO] Final Memory: 19M/192M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving /var/lib/jenkins/jobs/teste2-aceite/workspace/pom.xml to com.mycompany/calc/1.0-SNAPSHOT/calc-1.0-SNAPSHOT.pom
[JENKINS] Archiving /var/lib/jenkins/jobs/teste2-aceite/workspace/target/calc-1.0-SNAPSHOT.war to com.mycompany/calc/1.0-SNAPSHOT/calc-1.0-SNAPSHOT.war
channel stopped
Deploying /var/lib/jenkins/jobs/teste2-aceite/workspace/target/calc-1.0-SNAPSHOT.war to container Tomcat 7.x Remote
ERROR: Build step failed with exception
org.codehaus.cargo.container.ContainerException: Failed to redeploy [/var/lib/jenkins/jobs/teste2-aceite/workspace/target/calc-1.0-SNAPSHOT.war]
at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:193)
at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73)
at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116)
at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:103)
at hudson.FilePath.act(FilePath.java:989)
at hudson.FilePath.act(FilePath.java:967)
at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:103)
at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:61)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:761)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:721)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1037)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:670)
at hudson.model.Run.execute(Run.java:1766)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:529)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
Caused by: java.io.FileNotFoundException: http://localhost:8080//manager/text/list
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1872)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:544)
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
java.io.FileNotFoundException: http://localhost:8080//manager/text/list
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1872)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:544)
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)
at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73)
at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116)
at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:103)
at hudson.FilePath.act(FilePath.java:989)
at hudson.FilePath.act(FilePath.java:967)
at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:103)
at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:61)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:761)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:721)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1037)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:670)
at hudson.model.Run.execute(Run.java:1766)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:529)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
Build step ‘Deploy war/ear to a container’ marked build as failure
Finished: FAILURE

Aguardo.

Obrigado.

Olá, você mesmo respondeu … sim, tem que colocar o Tomcat em outra porta, coloque na 9000, por exemplo.

Depois de reiniciar o Tomcat, altere as configurações do job e faça o build novamente.

A saída sempre dá uma pista do que está acontecendo… note que o erro principal é:

java.io.FileNotFoundException: http://localhost:8080//manager/text/list

Olá,

Continua dando falha no bluid. Alterei a porta do Tomcat pra 9090 e acesso ele de boa pelo http://localhost:9090/
Com relação ao print acima só alterei o localhost pra 9090 mesm e continua o erro. Dentro no Tomcat consigo fazer o deploy da minha aplicação aqui e ela roda de boa, mas quero fazer no Jenkins né. A usuário e senha coloquei a do Jenkins de admin mesmo. Clico no erro: http://localhost:9090//manager/text/list, e me direciona pra uma tela cujo título é 403 Access Denied e fala que não tenho acesso pra visualizar a página, mas fui lá e configurei um usuário pra mim e senha normal. O que pode ser agora? Vou mandar o erro de novo:

[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.249 s
[INFO] Finished at: 2017-04-16T13:40:07-03:00
[INFO] Final Memory: 19M/194M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving /var/lib/jenkins/jobs/calc-aceite/workspace/pom.xml to com.mycompany/calc/1.0-SNAPSHOT/calc-1.0-SNAPSHOT.pom
[JENKINS] Archiving /var/lib/jenkins/jobs/calc-aceite/workspace/target/calc-1.0-SNAPSHOT.war to com.mycompany/calc/1.0-SNAPSHOT/calc-1.0-SNAPSHOT.war
channel stopped
Deploying /var/lib/jenkins/jobs/calc-aceite/workspace/target/calc-1.0-SNAPSHOT.war to container Tomcat 7.x Remote
ERROR: Build step failed with exception
org.codehaus.cargo.container.ContainerException: Failed to redeploy [/var/lib/jenkins/jobs/calc-aceite/workspace/target/calc-1.0-SNAPSHOT.war]
at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:189)
at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73)
at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116)
at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:103)
at hudson.FilePath.act(FilePath.java:989)
at hudson.FilePath.act(FilePath.java:967)
at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:103)
at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:61)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:761)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:721)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1037)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:670)
at hudson.model.Run.execute(Run.java:1766)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:529)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: The username and password you provided are not correct (error 401)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:550)
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: 401 for URL: http://localhost:9090//manager/text/list
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:544)
… 19 more
org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: The username and password you provided are not correct (error 401)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:550)
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)
at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73)
at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116)
at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:103)
at hudson.FilePath.act(FilePath.java:989)
at hudson.FilePath.act(FilePath.java:967)
at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:103)
at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:61)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:761)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:721)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1037)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:670)
at hudson.model.Run.execute(Run.java:1766)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:529)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: http://localhost:9090//manager/text/list
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:544)
… 19 more
Build step ‘Deploy war/ear to a container’ marked build as failure
Finished: FAILURE

Olá, esse livro é um tutorial focado apenas em Jenkins, e não nas ferramentas que ele usa.

Se você não conhece bem o Tomcat, procure na documentação ou grupos especializados para achar a resposta.

Nesse caso, o acesso ao manager via console texto exige que o seu usuário do Tomcat admin tenha a role manager-script.

Veja um exemplo aqui:

https://www.jdev.it/deploying-your-war-file-from-jenkins-to-tomcat/

Deu certo agora, buildou com sucesso.

Estava colocando na tomcat-users.xml todos os usuarios com vários tipos de poder com o mesmo nome e senha e tinha hora também dentre os erros de build trocava o usuário e senha alí na figura acima com o usuário de admin do Jenkins e no campo Context path colocava /calc, deixei só calc.

Buildou minha pequena aplicação com sucesso aqui e a abri na porta configurada, deu certo.

Como crio outra porta pro Tomcat pra colocar em produção? Abri o server.xml copiei a tag de conexão da minha atual porta e alterei para uma outra, salvei e essa outra porta não deu conexão com Tomcat.

Veja a documentação http://tomcat.apache.org/tomcat-8.0-doc/index.html ou procure ajuda nos grupos desse assunto.