Ruby 使用chef设置Cron

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

我有一个关于ruby/chef的问题,我正在创建一个菜谱,一旦我们chef客户端节点,它将设置一个cron作业,当我运行我的kitchen测试时,我得到一个语法错误

下面的代码块是我的食谱的一部分

  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我的考试通过了!那很容易!请将此作为答案发布