0

J'ai un projet Java Maven que je dois déployer sur une instance EC2 via un CI/CD automatisé. Le processus que je vise est, GIT-> Jenkins-> Code Deploy (déploiement S3-> EC2). Jenkins est capable de construire mon projet dans un fichier WAR.Utilisation de jenkins avec déploiement de code AWS pour le projet Java

Mais en utilisant Code deploy Plugin, lorsque dans la section Actions de post-construction, je sélectionne "Déployer une application sur AWS CodeDeploy", il suffirait de compresser le code entier dans l'espace de travail et de le pousser vers S3. Problème: j'ai besoin d'un fichier war pour le déployer sur tomcat sur une instance EC2.

De toute façon je peux envoyer le WAR créé par Jenkins à EC2, via Codedeploy? Ou de toute façon, je peux compresser le fichier WAR au lieu du code de l'espace de travail via Jenkins/codedeploy plugin, avant qu'il ne soit poussé à S3?

Merci!

Répondre

0

Oui, vous pouvez utiliser CodeDeploy pour déployer des fichiers war sur vos instances EC2 si vous le générez dans maven via jenkins, mais vous devez créer un fichier appspec et des scripts pour démarrer et arrêter le service. Fondamentalement CodeDeploy plugin zip le fichier war, les scripts et le fichier appspec, puis poussez sur s3 pour déployer. Nous avons un exemple de projet sur github, s'il vous plaît voir aws-codedeploy-sample-tomcat

+0

J'ai regardé dedans mais j'ai l'impression que vous utilisez buildspec.yml. n'est pas celui utilisé avec la construction de code? J'ai essayé ceci juste avec le déploiement de code et le dossier de zip qu'il a créé est vide. Pouvez-vous s'il vous plaît expliquer en détail comment le projet ci-dessus zips guerre, scripts et appsec.yml? – Usmi

+0

Si vous souhaitez uniquement utiliser CodeDeploy, vous pouvez ignorer le fichier buildspec.yml (qui est utilisé pour CodeBuild). Ce dont vous avez besoin pour effectuer un déploiement utilise le fichier appspec.yml – binbinlu