【问题标题】:Setting Cron using chef使用厨师设置 Cron
【发布时间】:2016-04-13 02:20:17
【问题描述】:

我有一个关于 ruby​​/chef 的问题,我正在创建一个配方,一旦我们厨师客户端节点将设置一个 cron 作业,并且在我运行厨房测试时遇到语法错误

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

  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​​ 中的 boolean 100% 我想要完成的是如果条目存在创建但如果将来我想删除我只需将属性切换为 true。

【问题讨论】:

标签: ruby chef-infra


【解决方案1】:

您可以在 ruby​​learn about the ternary operator in ruby 中了解三元运算符

我确实从配方操作中删除了 = 符号。现在看起来像:

    action node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["enabled"] ? :create : :delete

感谢@StephenKing 测试通过了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2013-10-10
    • 2012-02-19
    • 2017-07-27
    • 1970-01-01
    相关资源
    最近更新 更多