我听说过关于厨师的好事,在我花时间学习新工具之前对所有的好处感到好奇。不想把它变成意见线程,寻找它对makefile / shell脚本的附加功能列表。
答案 0 :(得分:4)
Chef,以及Ansible / Puppet / Salt(统称为CAPS),都是基于&#34的结构;描述系统的所需状态,工具将使其成为现实"。
脚本或Makefile通常是一个程序系统,运行它,然后运行它等等。这意味着你需要保持系统的心理模型从每一步到下一步,如果它偏离真实系统(例如,您尝试设置的所有者目录是否存在)您的脚本通常会中断。
有些东西很容易,比如yum/apt-get install
,因为它们在内部是幂等的,你可以每次运行它们,如果已经安装了包,它就什么都不做。
CAPS系统采用该原则(幂等)并将其应用于所有管理任务。这在很大程度上导致了较少的脆弱配置管理,因为您只需告诉工具最终结果应该是什么样的,并且它将负责从当前状态中找出增量。