>许多不同的项目是单独的git存储库,但都具有大多相同的服务器配置
>每个项目都依赖于许多其他项目,我们使用composer依赖项管理器将它们放在一起(这里是PHP语言)。
我想使用Vagrant并在每个存储库中包含一个Vagrant文件,所以我的团队成员可以克隆一个存储库,运行vagrant并准备好去。
我的问题现在是针对供应。我需要安装几个工具和包,如apache,git,MysqL和几个PHP软件包,然后下载一些文件(像最近的开发数据库转储),设置一切在/ var / www并运行composer install命令。
所以一个选项是使用管理器使用像chef或puppet这样的食谱。
另一种方法是编写一个bash文件并使用shell配置。
我没有太多的厨师/木偶的经验,所以自然,它似乎更容易使用shell选项,但我想知道,如果这是不是一个好/可行的选择长期。
为什么对我来说,这是一个糟糕的方法去与木偶/厨师:
我明白,我将不得不使用几种不同的食谱,几乎总是使用相同的食谱,我的不同的存储库,所以我必须包括所有的存储库。考虑有20个repos并且需要10个配方,这意味着我需要添加200个配方作为git-submodule或类似的(每个团队成员需要克隆仓库,然后克隆10个配方仓库,然后每个都运行vagrant up项目)。相比之下,我只需要有一个小的回购与我的shell脚本和克隆它20次。
我可能缺少一些东西,所以请咨询是否我应该选择chef / puppet为什么它是有意义的,即使我的存储库都有一个非常相似的服务器设置。
http://devopsu.com/blog/ansible-vs-shell-scripts/
报价1:
What really surprised me was the response from some of these more famous devs. They basically said,“This is really cool,but I probably won’t read it since my manual-install/shell-script workflow is fine for now.”
I was a little shocked,but once I thought about it for a few minutes,I realized that their choice was perfectly sane and rational given what they knew about CM tools.
报价2:
For them,using a CM tool meant weeks of effort learning complex concepts,struggling with a complex installation process,and maintaining that complex system over time. They were somewhat aware of the benefits,but the costs of using a CM tool just seemed too high to make it worth the effort.
对shell脚本的好处总结到底,我认为它们适用于所有CM工具,木偶,厨师,盐,ansible …
>哪种方法最有可能在源代码控制中结束?
>哪些方法可以安全可靠地多次运行?
>哪些方法可以轻松地对多个服务器运行?
>哪个方法实际上验证(测试)您的服务器的正确性?
>哪种方法可以轻松地定位某些服务器(web,db等)?
>哪个方法支持轻松模板化您的配置文件?
>哪种方法会成长为轻松支持你的整个堆栈?
希望这可以帮助。