Некоторых работы были сделаны по этому вопросу.
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"
Я попытался это, но кажется, что это руководство для Дженкинс работает на EC2, но в моем случае я имею Дженкинс работает на моей локальной машине. – Yahiya
Это не имеет значения. Вы все равно сможете копировать военный файл в свой ведро s3 и перезапустить экземпляр EBC с новым параметром войны. Я сделал это, используя плагин beanstalker maven, который похож по своей природе. – PaulProgrammer
Если вы пробовали это, добавьте в свой вопрос любые сообщения об ошибках или результаты, чтобы мы могли помочь решить проблемы, а не предоставлять ссылки на страницы, на которые вы уже посмотрели. – PaulProgrammer