我想将Atlassian Bamboo与AWS Elastic Beanstalk进行整合。反正有吗?
答案 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 answer为AWS 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)插件(商业广告,请参阅免责声明)感兴趣,该插件提供三项专用任务,具体为:
免责声明:我是此附加组件供应商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)