使用 Bamboo 持续部署到 Azure

Posted

技术标签:

【中文标题】使用 Bamboo 持续部署到 Azure【英文标题】:Continuous deployment to Azure using Bamboo 【发布时间】:2014-02-06 12:57:42 【问题描述】:

我正在使用 Atlassian Bamboo on Demand 进行持续集成,效果很好。

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

有人做到了吗?

【问题讨论】:

我不确定我们是否在问同样的问题,但我正在寻找这个解决方案:***.com/questions/23555024/…。 【参考方案1】:

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

Bamboo 没有用于部署到公共云的特定选项,因此您必须构建或调用现有的部署工具。在一天结束时,竹子部署为您提供了关于哪个构建已部署到哪个环境的元数据,以及关于谁可以进行部署的安全性,但您必须让实际部署工作。 Bamboo 确实为您提供了一个完全可扩展的引擎,用于通过脚本控制“如何”。部署引擎基本上是 CI 引擎的精简版,带有一个任务子集。

我决定构建我们的部署工具,因为它上手相当简单,而且值得在时间上进行投资,因为它会经常使用并随着时间的推移而改进。 Bamboo 为我提供了授权和访问控制,而我的脚本为我提供了对我的部署的细粒度控制。

我假设您正在像我这样的 Windows 图像上运行竹代理。所以 powershell scripts 是你的朋友。如果你在 linux 中运行,你会想要对 bash 做同样的事情。

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

控制器脚本在 mercurial repo 中进行源代码控制和维护。这是由存储库任务拉取的。

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

控制器为部署执行以下操作

连接到 vpc 使用 ec2 确定我的网络场中的可用节点 选择第一个节点并向该节点发送“升级数据库”命令 然后继续向每个节点发送“升级应用服务器”命令

进行部署的逻辑是参数化的,因此可以重新用于部署到不同的环境。我使用竹子deploy variables 来管理不同环境的喂养参数。

DEV 是自动部署的,test、staging 和 prod 都是手动点击部署,仅限于特定用户。

我考虑过一个选项,但没有花时间将 aws elastic beanstalk 视为部署工具。它具有丰富的部署 API。在 Azure 方面,web deploy 似乎支持部署到 Azure IIS 站点。

【讨论】:

以上是关于使用 Bamboo 持续部署到 Azure的主要内容,如果未能解决你的问题,请参考以下文章

在Bamboo上持续集成和部署Node.js应用程序

升级后 Azure 服务结构持续部署和回滚选项

Bamboo Maven Glassfish 部署

从 GitHub 持续部署在 Azure 中失败(ASP.NET 5 和 MVC 6)

ML.NET机器学习API容器化与Azure DevOps实践:持续集成与k8s持续部署

Azure DevOps 中 Dapr项目自动部署流程实践