Ruby 使用chef设置Cron
我有一个关于ruby/chef的问题,我正在创建一个菜谱,一旦我们chef客户端节点,它将设置一个cron作业,当我运行我的kitchen测试时,我得到一个语法错误 下面的代码块是我的食谱的一部分Ruby 使用chef设置Cron,ruby,chef-infra,Ruby,Chef Infra,我有一个关于ruby/chef的问题,我正在创建一个菜谱,一旦我们chef客户端节点,它将设置一个cron作业,当我运行我的kitchen测试时,我得到一个语法错误 下面的代码块是我的食谱的一部分 action node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["enabled"] = ? :create : :delete minute node["hadoop_temp"]["scripts"]["cron"]["clean_t
action node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["enabled"] = ? :create : :delete
minute node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["minute"]
hour node["hadoop_temp"]["scripts"]["cron"]["clean_teamp"]["hour"]
day node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["day"]
month node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["month"]
weekday node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["weekday"]
下面的块是我的属性的一部分
#Run the cron every day at 12AM cleans /temp
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["enabled"] = false
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["minute"] = "0"
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["hour"] = "0"
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["day"] = "*"
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["month"] = "*"
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["weekday"] = "*"
当我运行我的厨房测试时,我得到以下错误
SyntaxError
-----------
/tmp/kitchen/cache/cookbooks/hadoop_temp/recipes/clean_temp.rb:25: syntax error, unexpected '?'
..."hadoop_temp"]["enabled"] = ? :create : :delete
我不理解ruby中的布尔100%,我想实现的是,如果条目存在,创建,但如果将来我想删除,我只需将属性切换为true。您可以了解ruby中的三元运算符 我确实从配方操作中删除了=符号。现在看来:
action node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["enabled"] ? :create : :delete
谢谢@StephenKing考试通过了删除
=
符号。你可以。谢谢@StephenKing我的考试通过了!那很容易!请将此作为答案发布