10

I want to move an app I have to beanstalk. I want to have an easy automated way to promote new builds though. The console interface in beanstalk is nice: I can just get the war file and upload it. However, it would be nice if I could just run a Jenkins job and have it deploy when it finished building the war file.

I found a thread on here about doing ssh to a beanstalk instance. But there is probably more to it because Beanstalk is probably a cluster with a master that wants to be the deploy manager.

Worth doing or should I just accept the upload page?

Rob
  • 11,446
  • 7
  • 39
  • 57

6 Answers6

6

If you're using Maven for your builds, I wrote a plugin to automate beanstalk and Elastic MapReduce deployment:

http://beanstalker.ingenieux.com.br/

I'm looking for testers! :)

aldrinleal
  • 3,559
  • 26
  • 33
  • Awesome, will check this out tomorrow! – Rob Jul 08 '11 at 01:15
  • Rob, I'm just finishing the missing touches once I get some extra details. Meanwhile, you can watch the AWS fora, where there is a pom.xml suitable for Continuous Delivery into Beanstalk – aldrinleal Jul 14 '11 at 18:32
1

Afaik beanstalk has a web interface so you could create a selenium script to upload it for you. That would be a bit of a hack though.

Uploading via ssh or so it probably a good option. Also beanstalk has an API (http://aws.typepad.com/aws/2011/01/aws-beanstalk-apis-and-command-line-tools.html) that you could easily use from a script and then executed from hudson.

If you use a maven build you could have the build do the deployment invocation as part of e.g. the maven deploy phase after a successful build including unit tests..

Manfred Moser
  • 29,539
  • 13
  • 92
  • 123
  • Hack using selenium sounds like crazy idea, but ssh put is more reasonable, yet you have to know where it is. API is your friend. – Lukasz Feb 07 '12 at 11:27
1

I also didn't manage to find a Jenkins plugin to do so.

A good first step would be Luca's Beanstalk upload script to build a Jenkins plugin: https://github.com/blanq/beanstalk-upload

Franklin Dattein
  • 529
  • 1
  • 5
  • 11
0

You can try jcabi-beanstalk-maven-plugin, which automates deploying by CNAME swap. It's an experimental plugin with specific focus on this particular deployment strategy.

yegor256
  • 102,010
  • 123
  • 446
  • 597
0

Just FYI: I released a Plugin for that:

https://wiki.jenkins-ci.org/display/JENKINS/AWSEB+Deployment+Plugin

aldrinleal
  • 3,559
  • 26
  • 33
0

you can use Khan Academy's open source jenkins ec-2 plugin. https://github.com/Khan?page=2

Amit Mutreja
  • 168
  • 1
  • 7