所以我一直在为拥抱像Chef或Puppet这样的部署/配置管理工具而苦苦挣扎.不是因为我对他们总体上有任何犹豫,而是因为我认为它们不适合我们的具体情况.
据我所知,这些类型的工具针对频繁/大规模部署,您需要将软件推广到10s-1000s的系统.在我们的环境中,我们收集了大约25种不同的Web服务,这些服务分布在六个运行时中,目前每个生产中有1-8个部署.我们的大部署问题是每个服务都有不同的部署故事,并且它完全是手动的,因此它往往耗时且容易出错.另一个问题是生产中的不同实例可能是软件的不同版本,因此我们可能需要同时支持单个服务的多个部署故事.
所以我觉得我们需要更像Ant/Maven/Rake的东西,它是为每项服务定制的.但是,我对它们的体验是它们通常专注于本地操作,并且特定于给定的语言/运行时.
是否存在运行时无关的框架,用于以我感兴趣的方式描述和编排构建/测试/部署?
我敢肯定,如果我打得足够长,我可以让Rake或Puppet为我做这些,但我正在寻找为此目的而建造的东西.
(哦,更糟糕的是,一切都在Windows上运行)
谢谢!
我有一些部署脚本可以自动将存储库克隆到本地目录.不幸的是,我还没有找到一个处理更新的好方法,所以我只是事先清除了本地目录.这显然非常浪费.
理想情况下,我想要一系列命令,这些命令将保证特定的本地目录成为指定仓库/分支的副本,并且需要最少量的数据传输.因此,如果dir已经在正确的repo/branch上,它将只是更新它.如果它在正确的仓库,而不是正确的分支,它将只切换到新的分支.
我确信有一种方法可以通过检查.git中的一些文件并根据找到的内容执行特定操作来实现这一点,但我希望有一种更简单的方法.
一个重要的注意事项是,本地目录中的任何更改都可以随时丢弃.
可能有一个问题已经回答了这个问题,但我找不到合适的措辞来找到它.