2014-02-06 136 views
5

我正在使用Atlassian Bamboo on Demand进行持续集成,并且它非常棒。使用Bamboo连续部署到Azure

现在我正在尝试使用“部署”功能,问题是我正在使用Azure(ftp,publish,git,mercurial ...我真的不在乎如何),我可以'找到一个可以执行它的“任务”。

有没有人做到这一点?

+0

我不确定我们是否要求同样的事情,但我正在寻找这个解决方案:http://stackoverflow.com/questions/23555024/build-bamboo-from-bitbucket-deploy-to- Azure的云。 – roadsunknown

回答

3

我从竹子自动部署到AWS,但概念几乎相同。

Bamboo没有针对部署到公有云的特定选项,因此您必须构建或调用现有的部署工具。在这一天结束的时候,竹部署为您提供元数据,其中构建已部署到哪个环境,以及谁可以部署的安全性,但是您必须完成实际的部署工作。 Bamboo为您提供了一个完全可扩展的引擎,用于通过脚本控制“如何”。部署引擎基本上是一部分任务的CI引擎的削减版本。

我决定构建我们的部署工具,因为它开始时相当简单,而且价格合理,因为这会随着时间的推移而经常使用和改进。 Bamboo为我提供了授权和访问控制,而且我的脚本使我能够对我的部署进行细粒度控制。

我假设你在像我这样的Windows映像上运行一个竹代理。所以powershell scripts是你的朋友。如果你在linux下运行,你会想要用bash来做同样的事情。

我有一个powershell脚本通过控制器/代理模型控制我的部署。

控制器脚本是源代码管理的,并在mercurial repo中维护。这由存储库任务拉取。

该代理程序是一个powershell脚本,由具有自定义身份验证机制的简单webapi rest服务包装。在ec2中设置应用服务器实例时设置代理。我们使用puppet进行服务器配置。

控制器确实为部署

  • 连接到VPC
  • 使用EC2
  • 选择所述第一节点和发送节点的“升级数据库确定我的网页场中的可用节点以下“命令
  • 然后进行到发送‘升级应用服务器’命令到每个节点

钍e进行部署的逻辑被参数化,因此可以将其重新用于部署到不同的环境。我使用竹deploy variables来管理不同环境的饲养参数。

DEV是自动部署的,测试,分期和产品都是手动点击部署,它们被锁定到特定用户。

我考虑过的一个选项,但没有投入时间看作为aws elastic beanstalk作为部署工具。它具有丰富的部署API。在Azure方面,它看起来像web deploy支持部署到Azure IIS站点。