首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Hiera里面做基础数学

在Hiera里面做基础数学
EN

Stack Overflow用户
提问于 2015-02-27 22:58:43
回答 2查看 2.9K关注 0票数 4

我试图根据一个定制的事实和基本的模块在hiera设置一个crontab工作日,但我甚至不知道这是否可能。

我想做这样的事情:

代码语言:javascript
复制
  cron-job:
    command:  "do something"
    user:    myuser
    hour:    "%{::instance}"
    minute:  "%{::instance}"
    weekday: "%{::instance}" % 7

这能办到吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-01 23:24:42

不,这不可能。请记住,YAML只是数据,而不是代码。

Hiera确实提供了一些使用插值标记的转换,但是只有两种功能可以与这些转换一起使用,不能使用算术。

票数 4
EN

Stack Overflow用户

发布于 2018-08-20 06:14:22

我不确定我是否遵循了用例,但是您可能可以通过使用inline_eppinline_template来使它看起来像存在这样的特性。

例如:

代码语言:javascript
复制
# In real usage this would be the result of a hiera lookup
$simple_lookup_result = '9 % 7'
$simple_evaluated = inline_template("<%= ${simple_lookup_result} %>")

exec { 'simple':
  command => "/bin/echo $simple_evaluated",
  logoutput => true,
}

# Again, hiera...
$complex_lookup_result = 'sprintf("The value is %i", 9 % 7)'
$complex_evaluated = inline_template("<%= ${complex_lookup_result} %>")

exec { 'complex':
  command => "/bin/echo $complex_evaluated",
  logoutput => true,
}

其结果是:

代码语言:javascript
复制
$ puppet apply eval.pp 
Notice: Compiled catalog for box in environment production in 0.06 seconds
Notice: /Stage[main]/Main/Exec[simple]/returns: 2
Notice: /Stage[main]/Main/Exec[simple]/returns: executed successfully
Notice: /Stage[main]/Main/Exec[complex]/returns: The value is 2
Notice: /Stage[main]/Main/Exec[complex]/returns: executed successfully
Notice: Applied catalog in 0.05 seconds

请记住,Hiera可以内插变量Hiera查找,查找也可以在inline_eppinline_template最终评估的代码中完成。

注:这是一个例子,您不应该将Hiera输入传递到shell命令中,除非您信任您的用户,并且非常喜欢头痛。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28775785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档