我有以下设置: 许多不同的项目是独立的git仓库,但都具有相同的服务器configuration 每个项目依次依赖于许多其他项目,我们使用composer php依赖pipe理器把它们放在一起(PHP语言在这里)。 我想使用Vagrant,并在每个存储库中包含一个Vagrant文件,所以我的团队成员可以克隆一个存储库,运行vagrant up并准备好去。 我现在的问题是针对configuration。 我需要安装一些工具和软件包,比如apache,git,mysql和几个php软件包,然后下载一些文件(比如最近的一个开发数据库转储文件),把所有东西放在/ var / www中,然后运行composer install命令。 所以一个select是使用厨师或傀儡等食谱的经理。 另一种方法是编写一个bash文件并使用shellconfiguration。 我对厨师/傀儡没有太多的经验,所以自然而然,使用shell选项似乎更容易,但是我想了解,如果这从长远来看不是一个好的/可行的select。 为什么对我来说这似乎是一个不好的方法去与木偶/厨师: 我明白,我将不得不使用几种不同的食谱,并且几乎总是对我的不同的储存库使用相同的食谱,所以我将不得不将所有的食谱包括在所有的储存库中。 考虑有20个回购,需要10个配方,这意味着我将需要添加200个食谱作为一个git子模块或类似(也是每个团队成员需要克隆存储库,然后克隆10个配方库,然后只运行vagrant了每项目)。 相反,我只需要用我的shell脚本有一个小的回购,并克隆它20次。 我可能错过了一些东西,所以请告知我是否应该select厨师/傀儡,为什么它有意义,即使我的存储库都有一个非常类似的服务器设置。
我试图创build自动安装zend服务器CE的puppet模块,这在这里并不重要,但步骤如下 更新/etc/apt/source.list 通过wget下载回购密钥 做apt-get更新 apt-get install zend-server-ce-5.2 我有init.pp文件 class zendserverce { # https://github.com/puppetlabs/puppetlabs-stdlib file_line { 'debian_package': path => '/etc/apt/sources.list', line => 'deb http://repos.zend.com/zend-server/deb server non-free' } exec { "wget http://repos.zend.com/zend.key -O- |apt-key add -": path => ["/usr/bin", "/usr/sbin"] } exec { "apt-get update": command => "/usr/bin/apt-get update", onlyif => "/bin/sh -c '[ ! -f /var/cache/apt/pkgcache.bin […]
有没有像这样的* nix世界有窗户的工具? 我正在寻找像厨师或木偶这样的东西。 我已经find了cfEngine,但它仍然看起来非常以nix为中心。 理想情况下,它将是开源的,并由命令行驱动。 这个想法是把自动化的基础设施与基于Windows的服务器结合在一起。 我们目前的IT部门不允许非Windows服务器。
我们正在计划使用非“预先烘焙”的AMI EC2实例。 也就是说,当他们分手时,他们是AWS Linux的裸设备。 我们的引导过程将引入我们需要的各种安装,例如python,tomcat。 我们将有3个实例,最多8个。 考虑到这些要求,使用Puppet / Chef会比使用Amazon Cloud Formation(CloudInit)更有用吗? 我能看到的最好的是,如果我们使用了Puppet,那么我们就会有更容易审计的声明性编程,以查看与脚本相比发生了什么。 另外CloudInit有一个16k的脚本大小限制,我们可能会也可能不会碰到。 有没有人从CloudInit移动到木偶或厨师的特定原因,他们可以在这里提供回答我的问题?