【发布时间】:2016-07-08 08:02:07
【问题描述】:
我刚开始使用 Chef,我正在尝试弄清楚如何在做任何事情之前先检查文件是否存在。
我为我当前的用例准备了文件部分,我正在删除生产服务器的登录文件,例如:
file '/var/www/html/login.php' do
action :delete
end
但是,我希望能够首先检查文件是否存在,例如。
if (file_exists === true)
file '/var/www/html/login.php' do
action :delete
end
end
【问题讨论】:
-
为什么需要这个能力? Chef 不会检查系统的所需状态是否等于您描述的状态,并且仅在所需状态不同时才进行更改?您现在要解决什么实际问题或错误消息?
-
嘿@DavidGrayson 感谢您的回复。我是新来的厨师,所以你的想法可能是对的。我目前没有遇到任何错误或问题,但是我已经习惯于编写条件语句,这似乎是正确的做法——这可能是我思维中的一个缺陷,因为我仍在了解最佳实践Chef 的运作方式。在这种情况下我不需要检查文件是否存在吗?这意味着如果文件不存在并且我仍在执行试图删除它的配方,我不会收到任何错误?
-
我通常不使用 Chef 删除文件,但我知道当我创建它们时我不需要 "if" 语句,所以我不明白你为什么需要 " if" 删除时的语句。
标签: ruby if-statement chef-infra chef-recipe