如何将Atlassian Bamboo与AWS Elastic Beanstalk集成

时间:2013-07-04 03:50:02

标签: amazon-web-services elastic-beanstalk bamboo

我想将Atlassian BambooAWS Elastic Beanstalk进行整合。反正有吗?

4 个答案:

答案 0 :(得分:4)

这取决于您的Bamboo和beanstalk配置以及您计划在AWS Beanstalk上部署的应用程序类型。

我们为Java Web Apps做了一些事情:

由于Bamboo了解maven,您可以查看以下maven插件: http://beanstalker.ingenieux.com.br/beanstalk-maven-plugin/configurations-and-templates.html

我们在某些环境中使用它来创建战争并将其上传到弹性beanstalk。然后,您可以在Bamboo中创建一个maven任务来调用插件。

如果您在自己拥有的计算机上下载并安装了Bamboo,则可以使用Elastic Beanstalk command line interface (CLI)。 这可能是最强大的方法,但您需要在Bamboo实例上安装CLI。然后你几乎可以做任何事情。除Java / Tomcat之外,此方法也适用于其他环境。

另一个想法: 如果您使用git使用Beanstalk(即通过更改代码并推送到Beanstalk进行部署),那么您也可以使用Bamboo中的新“部署项目”功能在代码通过所有测试后推送它。

答案 1 :(得分:3)

David's answerAWS Elastic Beanstalk(+1)的跨产品使用提供了很好的选择。现在我推荐优秀的统一AWS Command Line Interface而不是现在的遗产AWS Elastic Beanstalk API Command Line Interface,请参见resp。 AWS CLI commands for elasticbeanstalk

如果您正在寻找Bamboo特定解决方案,您可能会对Utoolity的Tasks for AWS (Bamboo)插件(商业广告,请参阅免责声明)感兴趣,该插件提供三项专用任务,具体为:

  • AWS Elastic Beanstalk应用程序 - 创建,更新或删除AWS Elastic Beanstalk应用程序。
  • AWS Elastic Beanstalk应用程序版本 - 创建,更新或删除AWS Elastic Beanstalk应用程序版本。
  • AWS Elastic Beanstalk环境 - 创建,更新,重建,重启,交换或终止AWS Elastic Beanstalk环境,并指定配置设置和高级选项。

免责声明:我是此附加组件供应商Utoolity的联合创始人。

答案 2 :(得分:0)

如果您对C#部署感兴趣:

我们所做的只是启动awsdeploy工具(应该已经安装在构建服务器上),并附带配置脚本的链接。我只是在Visual Studio中创建环境,当我重新部署应用程序一次时,我保存了脚本。一旦脚本在构建服务器上,我就在部署配置中使用awsdeploy /r c:\location\of\myscript.txt引用它。

AWS部署配置脚本中引用的包本身是在构建时使用MSbuild /target:package命令创建的,并定义为工件(ZIP包的默认位置为c:\build-dir\...\project\obj\debug\package,但可以是覆盖。

到目前为止,一切都运行良好,但是当没有可用时(例如夜间构建),我遇到启动弹性实例的问题。

答案 3 :(得分:0)

看看我们的回购:https://github.com/matzegebbe/docker-aws-login 使用该片段,您可以使用aws登录推送图像

简单的竹子任务脚本(当然你需要在代理上安装docker):

#!/bin/bash

docker images hellmann/awscli | grep -q awscli
[ "$?" -eq "0" ] && exit 0

cat <<'EOF' >> Dockerfile
FROM python
MAINTAINER Mathias Gebbe <mathias.gebbe@hellmann.net>

RUN pip install awscli --ignore-installed six

ENV aws_access_key_id AWS_ACCESS_KEY
ENV aws_secret_access_key AWS_SECRET_ACCESS_KEY 

RUN mkdir /root/.aws/
RUN printf "[default]\nregion = eu-west-1\n" > /root/.aws/config
RUN printf "[default]\naws_access_key_id = ${aws_access_key_id}\naws_secret_access_key = ${aws_secret_access_key}\n" > /root/.aws/credentials
ENTRYPOINT ["/bin/bash","-c"]
CMD ["aws ecr get-login"]
EOF
docker build -t hellmann/awscli .
$(docker run --rm hellmann/awscli)