厨师和木偶推荐
回答
我会使用Puppet,但我有点偏见,因为我写了一本关于它的书,并在那里工作。 :)除了Rump,您还可以在其应用模式下使用Puppet - 这与厨师独奏相同。虽然Rump包装了一些值得尝试的过程。
我给木偶这里拍摄使用臀部周围的包裹物 - 你既可以用木偶DSL或Ruby DSL(厨师只有一个Ruby DSL)。使用Puppet创建“环境”并将git/CI工作流程与您的部署集成非常容易。它也很容易与Rake任务或诸如此类集成。
既然使用了两者,我会说它取决于你所寻找的。在我看来:
厨师更开发商取向。如果你是一位Ruby大师,你会爱上它。
Puppet is more sysadmin-oriented。它有一个非ruby的DSL,所以将错误传播到你的机器(imho)更加困难。
木偶创建更具可读性和稳定的代码,但它也慢部署新功能。这可能是您在一个坚信您的DevOps工作的大企业架构中需要的。
随着厨师可以实现复杂的任务,用更少的代码,时间精力。你可以使用所有的红宝石魔法,而无需创建一个Puppet构造。例如,当您的公司并不真正相信DevOps的价值,并且您不断努力争取时间来证明您的经理错误时,这很好:-)我个人发现Puppet在开发新功能时执行起来要慢一些可能会有点痛苦。
我的建议是:如果你有一定的开发技能的系统管理员,去木偶。如果你对Ruby(或Python)很好,那就去厨师吧。
我也试过臀部,我用它玩。它有帮助,它很酷,但我仍然没有看到一个巨大的价值,除了懒惰打字臀部去而不是puppet apply -vd --modulepath =。 module/manifests/init.pp。 :)
我发现puppet apply + capistrano最适合本地设置或在您是单个部署者的项目中。否则,安全性告诉我们使用puppet master或Hosted Chef或Chef Solo或其他人:)用Ruby编写的很多puppet模块,我也喜欢语法,它很容易配置,Chef更加困难。但有时厨师可以对任何使用木偶的服务器做任何事情:) – merqlove
由于某种原因,我通过将'-e'开关加入我的班级,我有更好的运气。 'sudo puppet apply --modulepath〜/ git/puppet_modules -e'include my-class'' – MarkHu
最后,我结束了木偶+ vagrant这让我运行/重新运行/测试木偶表现:然后
gem install puppet
gem install vagrant
:
首先安装VirtualBox,然后
vagrant box add base http://files.vagrantup.com/lucid32.box
vagrant init
然后编辑./Vagrantfile说:
Vagrant::Config.run do |config|
config.vm.box = "base"
config.vm.provision :puppet do |puppet|
puppet.manifests_path = "manifests"
puppet.module_path = "modules"
end
# rest here
end
然后节点定义添加到manifests/default.pp
,如:
group { "puppet":
ensure => "present",
}
file { '/etc/motd':
content => "Welcome to your Vagrant-built virtual machine!\n"
}
然后运行:
vagrant up
现在你已经有了一个傀儡管理虚拟机,你可以玩,任何清单你改变进入源代码管理。你可以快速迭代而不必诉诸于臀部。
Puppet和Chef之间还有一个很大的区别就是Puppet会在服务器上完成所有的清单编译,而Chef(和cfengine)会在客户端上完成部分或全部工作。
这是什么意思是 *您的客户端上运行木偶的CPU占用空间较少, *插件使用Puppet编写的模块只能在服务器上运行。
第二部分很重要,因为它使Puppet与其他架构相结合变得更容易。例如,如果您想通过另一个应用程序的API来获取数据,那么在Puppet下,您只需要在Puppetmaster上安装必要的API模块,并且只需要授予该服务器对API的访问权限即可。任何必要的证件也都留在傀儡大师身上 - 更加安全。
我们整合了Puppet和SecretServer(使用puppet自动旋转根密码并将它们存储到SecretServer中)。根据我的理解模型,这在厨师之下是不可能的或安全的。
- 1. 使用厨师/木偶并管理手工更改
- 2. 非常简单的流浪安装与厨师或木偶
- 3. 获取团队城市的厨师/木偶通知
- 4. 厨师推荐的执行命令的方式
- 5. 厨师和PostgreSQL
- 6. 木偶大师无法启动
- 7. 木偶大师:如何打开日志?
- 8. 木偶大师新鲜安装错误
- 9. 流浪运行的木偶大师与
- 10. 持续交付与capistrano /厨师/木偶:你在哪里存储你的文物?
- 11. 替代厨师/木偶/詹金斯推送从服务器到客户端的指令集,反之亦然?
- 12. 木偶 - 应用木偶类
- 13. 如何从一个木偶代理使用多个不同的木偶大师?
- 14. Rest API和厨师
- 15. 你可以混合厨师零厨师,厨师 - 金属 - 流浪(流浪)和berkshelf?
- 16. 木偶:puppetDB和TEMPLATEDIR
- 17. 厨师推工作不工作
- 18. 企业厨师推送工作
- 19. 厨师 - NoMethodError在厨师::资源::应用
- 20. 厨师:理解厨师::资源提供?
- 21. etcd/zookeeper/consul和其他配置管理工具(如厨师/木偶/ ..)之间的关系?
- 22. 木偶企业或木偶开源
- 23. 厨师服务器和厨师客户端连接
- 24. 添加食谱厨师run_list和厨师客户端-o选项
- 25. 是厨师自动化和厨师交付一样吗?
- 26. 厨师下载和在Windows
- 27. 厨师和码头工人
- 28. 厨师和redissio错误
- 29. 厨师和Nagios间隔
- 30. 厨师 - 角色和环境
太棒了。我几天前买了你的书。我应该在哪里寻找关于如何将我的代码设置为傀儡可以与例如傀儡一起处理的包的指导。 Web服务器还是作为独立服务(例如使用TopShelf)? – Henrik
这本书写的就像我坐在一个企业的基础设施,DNS服务器等已经成立......我如何从头开始在WIN/Ubuntu的?假设我想配置一个Win2008服务器并拥有一个git存储库? – Henrik