Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problemas ao fazer deploy com Jenkins

Estou tendo problemas para fazer o deploy algumas tentativas aparaceram o seguinte erro no console do Jenkins:

Failed CodeDeploy post-build step; exception follows.
Deployment Group 'f623b29a-944e-4c33-9d4b-a805df86c965' is already deploying deployment 'd-9X43S47CB' (Service: AmazonCodeDeploy; Status Code: 400; Error Code: DeploymentLimitExceededException; Request ID: 0b79269e-1ad5-4b0f-913d-514a180c5083)
com.amazonaws.services.codedeploy.model.DeploymentLimitExceededException: Deployment Group 'f623b29a-944e-4c33-9d4b-a805df86c965' is already deploying deployment 'd-9X43S47CB' (Service: AmazonCodeDeploy; Status Code: 400; Error Code: DeploymentLimitExceededException; Request ID: 0b79269e-1ad5-4b0f-913d-514a180c5083)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1712)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1367)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1113)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:770)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:744)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:726)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:686)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:668)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:532)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:512)
    at com.amazonaws.services.codedeploy.AmazonCodeDeployClient.doInvoke(AmazonCodeDeployClient.java:4152)
    at com.amazonaws.services.codedeploy.AmazonCodeDeployClient.invoke(AmazonCodeDeployClient.java:4119)
    at com.amazonaws.services.codedeploy.AmazonCodeDeployClient.invoke(AmazonCodeDeployClient.java:4108)
    at com.amazonaws.services.codedeploy.AmazonCodeDeployClient.executeCreateDeployment(AmazonCodeDeployClient.java:1535)
    at com.amazonaws.services.codedeploy.AmazonCodeDeployClient.createDeployment(AmazonCodeDeployClient.java:1506)
    at com.amazonaws.codedeploy.AWSCodeDeployPublisher.createDeployment(AWSCodeDeployPublisher.java:418)
    at com.amazonaws.codedeploy.AWSCodeDeployPublisher.perform(AWSCodeDeployPublisher.java:240)
    at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:79)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
    at hudson.model.Build$BuildExecution.post2(Build.java:186)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
    at hudson.model.Run.execute(Run.java:1843)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
ERROR: Step ‘Deploy an application to AWS CodeDeploy’ failed: null
Finished: FAILURE
`

Outro detalhe importante é que meu console aws é um pouco ferente do que esta mostrando no curso.

Não estou utilizando Auto Scaling

Prints da console

3 respostas

Faz um restart do seu AWS CodeDeploy, parece que você excedeu os 10 deployments default. https://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/limits.html

Mas como pode ver na imagem nem 1 se quer deu certo. Eu deletei a aplicação e comecei de novo, mesmo assim não deu certo.

solução!

Olá pessoal, tudo bem com vocês? Peço desculpas pela demora no retorno! Mas para resolver o problema vou indicar o mesmo passo a passo que indiquei para o Natan nesse outro tópico.

O que acontece é que depois de colocar o seguinte conteúdo:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>

<user username="jenkins" password="jenkins" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

Dentro do arquivo /var/lib/tomcat8/conf/tomcat-users.xml e logo em seguida reiniciar o Tomcat com o comando sudo service tomcat8 restart como o instrutor apresentou, faltou fazer o seguinte processo:

  • Ir novamente em "Ações de pós-build" (Post-build Actions) , na parte de Credentials clique em Add e depois em Jenkins, como na imagem abaixo: Add Credentials

  • Coloque os campos da seguinte forma:

    • Username: jenkins
    • Password: jenkins
    • ID: jenkins
    • Description: jenkins
  • Por fim, clique no botão Add, como na imagem abaixo: Save Credential

  • E novamente no campo de Credentials selecione a nova crendencial que acabamos de criar jenkins e salve o Job novamente, como na imagem: Select Credential
  • Agora tente executar o Job novamente.

Acho que talvez você tenha o seguinte ERROR:

ERROR: Build step failed with exception
org.codehaus.cargo.container.ContainerException: Failed to deploy [/var/lib/jenkins/workspace/catalogo/target/alura-aws.war]

<outra parte do log>
Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: The Tomcat Manager responded "FAIL - Deployed application at context path [/alura-aws] but context failed to start
" instead of the expected "OK" message

Já vou me antecipar e indicar os passos para você resolver esse outro problema:

1) Conecte-se a máquina EC2 via SSH, entre no banco de dados com o comando (instale o mysql-client antes e também o RDS e o EC2 precisam estar no mesmo VPC):

mysql -u root -h endpoint_do_banco_de_dados -p

E agora informe a senha.

2) E depois crie o banco de dados "alura_aws", para isso você precisa executar o comando para criar o banco de dados:

CREATE DATABASE alura_aws;

3) Agora crie saia do MySQL e entre no arquivo setenv.sh com o comando:

sudo nano /usr/share/tomcat8/bin/setenv.sh

4) Altere o arquivo colocando a porta do MySQL (3306) e também coloque a palavra reservada export antes de todas as variaveis, então o arquivo deve ficar da seguinte forma:

export url=endpoint_do_banco_de_dados:3306
export usuario=root
export senha=12345678

E deve funcionar corretamente seu build, caso ainda persista o erro, então entre na pasta /var/lib/tomcat8/webapps com o comando:

cd /var/lib/tomcat8/webapps

E exclua o arquivo "alura-aws.war" e a pasta "alura-aws/" com os comandos:

sudo rm  alura-aws.war

E depois:

sudo rm -r  alura-aws

E tente fazer o build novamente.

Espero ter ajudado!