我正在使用 Atlassian Bamboo on Demand 进行持续集成,效果非常好。
现在我正在尝试使用“部署”功能,问题是我正在使用 Azure(ftp、publish、git、mercurial...我真的不在乎如何),但我不能找到一个可以执行它的“任务”。
有人实现过这个吗?
最佳答案
我从 Bamboo 自动部署到AWS,但概念几乎是相同的。
Bamboo 没有用于部署到公共(public)云的特定选项,因此您必须构建或调用现有的部署工具。最终,bamboo 部署为您提供了元数据,其中的构建已部署到哪个环境,以及谁可以进行部署的安全性,但这取决于您必须使实际的部署工作。 Bamboo 确实为您提供了一个完全可扩展的引擎,用于通过脚本控制“如何”。部署引擎基本上是 CI 引擎的精简版本,包含任务子集。
我决定构建我们的部署工具,因为它上手相当简单,而且时间投资很值得,因为它将经常使用并随着时间的推移而改进。 Bamboo 为我提供授权和访问控制,而我的脚本为我提供对部署的细粒度控制。
我假设您像我一样在 Windows 镜像上运行 Bamboo 代理。所以powershell scripts是你的 friend 。如果您在 Linux 中运行,您将需要对 bash 执行相同的操作。
我有一个 powershell 脚本通过 Controller /代理模型控制我的部署。
Controller 脚本受源代码控制并在 Mercurial 存储库中维护。这是由存储库任务拉取的。
该代理是一个 powershell 脚本,由具有自定义身份验证机制的简单 Webapi Rest 服务封装。当在 ec2 中配置应用程序服务器实例时,会设置代理。我们使用puppet用于服务器配置。
Controller 对部署执行以下操作
- 连接到 vpc
- 使用 ec2 确定我的网络场中的可用节点
- 选择第一个节点并向该节点发送“升级数据库”命令
- 然后继续向每个节点发送“升级应用服务器”命令
执行部署的逻辑已参数化,因此可以重复使用它来部署到不同的环境。我用 Bamboo deploy variables管理不同环境的喂养参数。
DEV 是自动部署的,测试、登台和生产都是手动点击部署,并锁定到特定用户。
我考虑过一个选项,但没有花时间来研究 aws elastic beanstalk作为部署工具。它有丰富的 api 用于部署。在 Azure 方面,它看起来像 web deploy支持部署到 Azure IIS 站点。
关于azure - 使用 Bamboo 持续部署到 Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21603655/