为什么使用Chef / Puppet而不是shell脚本?

Modified on: Thu, 14 Nov 2019 01:40:02 +0800

Puppet和Chef工具的新功能。看起来他们正在做的工作可以通过shell脚本来完成。也许它是在shell脚本中完成的,直到它们出现。

我同意他们更具可读性。但是,除了可读性之外,还有其他优于shell脚本的优势吗?

作者:Totor,resting

最佳答案

特定于域的语言会对您编写的代码量产生很大影响。例如,您可以争辩说:

之间没有太大区别

chmod 640 /my/file

file { "/my/file":
    mode => 640,
}

但这些之间存在很大差异:

FILE=/my/file chmod 640 $FILE chown foo $FILE chgrp bar $FILE wget -O $FILE "http://my.puppet.server/dist/$FILE" # where the URL contains "Hello world"

FILE=/my/file
chmod 640 $FILE
chown foo $FILE
chgrp bar $FILE
wget -O $FILE "http://my.puppet.server/dist/$FILE"
     # where the URL contains "Hello world"

如果wget失败会怎么样?你的脚本将如何处理?如果你的脚本中有一些东西要求$ FILE与正确的内容在一起会发生什么呢?

你可能会争辩说可以把echo "Hello world" > $FILE,除了在第一个示例中脚本必须在客户端上运行,而puppet在服务器上编译所有这些。因此,如果您更改内容,则只需在服务器上更改内容,然后根据您想要的内容将其更改为多个系统。并且puppet会自动处理依赖关系并为您传输问题。

没有比较 - 正确的配置管理工具可以节省您的时间和复杂性。你尝试的越多,shell脚本越多越不合适,用puppet做的就越省力。

作者:Paul Gear

相关问答

添加新评论