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

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

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

特定于域的语言会对您编写的代码量产生很大影响.例如,你可以说,之间没有太大区别:
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":
    mode => 640,owner => foo,group => bar,content => "Hello world",}

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

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

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

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...