2013-07-18 3 views
-1

Я хочу развернуть войну от Дженкинса до Облака.Развернуть .war до AWS

Не могли бы вы рассказать мне, как развернуть военный файл от Дженкинса на моем местном языке до AWS Bean Stalk?

Я попытался с помощью Jenkins после процесса плагин для копирования артефакта S3, но я получаю следующее сообщение об ошибке:

ERROR: Failed to upload files java.io.IOException: put Destination [bucketName=https:, objectName=/s3-eu-west-1.amazonaws.com/bucketname/test.war]: 
com.amazonaws.AmazonClientException: Unable to execute HTTP request: Connect to s3.amazonaws.com/s3.amazonaws.com/ timed out at hudson.plugins.s3.S3Profile.upload(S3Profile.java:85) at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:143) 

ответ

1

Некоторых работы были сделаны по этому вопросу.

http://purelyinstinctual.com/2013/03/18/automated-deployment-to-amazon-elastic-beanstalk-using-jenkins-on-ec2-part-2-guide/

В принципе, это просто добавить после сборки задачу для запуска стандартных сценариев развертывания командной строки.

Из указанной странице, предполагая, что у вас есть после сборки плагина задач на Дженкинс и инструментов командной строки AWS установлен:

ШАГ 1

В экране конфигурации задания Дженкинс, добавьте « Post-build action "и выберите плагин« Опубликовать артефакты в ведро S3 », укажите источник (в нашем случае мы используем Maven, поэтому источником является target/.war, а destination - ваше имя ведра S3)

STEP 2

Затем добавьте «Задачу после сборки» (если у вас ее нет, это плагин в репозитории Maven) в тот же раздел выше («Действия после сборки») и перетащите его под « Публикация артефактов в ведро S3 ". Это важно, чтобы мы хотели, чтобы файл войны загружался на S3, прежде чем приступать к скриптам.

В части задачи после сборки, убедитесь, что вы проверить поле «Выполнить скрипт только если все предыдущие шаги были успешными» в

В текстовом подлиннике области, заложенные в пути сценария для автоматизации развертывания (описанный на шаге 3 ниже). Для нас, мы помещаем что-то вроде этого:

<path_to_script_file>/deploy.sh "$VERSION_NUMBER" "$VERSION_DESCRIPTION" 

в $ VERSION_NUMBER и $ VERSION_DESCRIPTION являются параметры сборки Дженкинса и должно быть указано, когда развертывание запускается. Обе переменные будут использоваться для развертывания АЕБ

ШАГ 3

Сценарий

#!/bin/sh 
export AWS_CREDENTIAL_FILE=<path_to_your aws.key file> 
export PATH=$PATH:<path to bin file inside the "api" folder inside the AEB Command line tool (A)> 
export PATH=$PATH:<path to root folder of s3cmd (B)> 

//get the current time and append to the name of .war file that's being deployed. 
//This will create a unique identifier for each .war file and allow us to rollback easily. 
current_time=$(date +"%Y%m%d%H%M%S") 
original_file="app.war" 
new_file="app_$current_time.war" 

//Rename the deployed war file with the new name. 
s3cmd mv "s3://<your S3 bucket>/$original_file" "s3://<your S3 bucket>/$new_file" 

//Create application version in AEB and link it with the renamed WAR file 
elastic-beanstalk-create-application-version -a "Hoiio App" -l "$1" -d "$2" -s "<your S3 bucket>/$new_file" 
+0

Я попытался это, но кажется, что это руководство для Дженкинс работает на EC2, но в моем случае я имею Дженкинс работает на моей локальной машине. – Yahiya

+0

Это не имеет значения. Вы все равно сможете копировать военный файл в свой ведро s3 и перезапустить экземпляр EBC с новым параметром войны. Я сделал это, используя плагин beanstalker maven, который похож по своей природе. – PaulProgrammer

+0

Если вы пробовали это, добавьте в свой вопрос любые сообщения об ошибках или результаты, чтобы мы могли помочь решить проблемы, а не предоставлять ссылки на страницы, на которые вы уже посмотрели. – PaulProgrammer

Смежные вопросы