【问题标题】:creating a cron-job template for Puppet为 Puppet 创建一个 cron-job 模板
【发布时间】:2012-01-15 01:07:04
【问题描述】:

我在说 Ruby 方面几乎是个新手。我正在尝试为Puppet 编写模板(.erb)。我的目标是基于这个变量:

$c_repo = 'repo1,repo1-condb,repo2,....'

编写一个模板,然后创建一个 cron-job 文件,如下所示:

43 2 * * * root /etc/zmfs/zmfs-check.sh repo1 >> /var/log/zmfs.log 2>&1
45 2 * * * root /etc/zmfs/zmfs-check.sh repo1-condb >> /var/log/zmfs.log 2>&1
....

我可以创建一个相当简单的单一值:

$c_repo = 'repo1'
43 2 * * * root /etc/zmfs/zmfs-check.sh <%= c_repo %> >> /var/log/zmfs.log 2>&1

但就是不知道如何为列表创建循环。非常感谢任何帮助。干杯!!

【问题讨论】:

    标签: ruby puppet eruby


    【解决方案1】:

    这应该可行:

    <% c_repo.split(',').each_with_index do |repo, i| -%>
    <%= (i*2)%60 %> 2 * * * root /etc/zmfs/zmfs-check.sh <%= repo %> /var/log/zmfs.log 2>&1
    <% end -%>
    

    输出:

    0 2 * * * root /etc/zmfs/zmfs-check.sh repo1 /var/log/zmfs.log 2>&1
    2 2 * * * root /etc/zmfs/zmfs-check.sh repo1-condb /var/log/zmfs.log 2>&1
    4 2 * * * root /etc/zmfs/zmfs-check.sh repo2 /var/log/zmfs.log 2>&1
    

    【讨论】:

    • 当我让 Puppet 运行此模板时,我收到此错误:private method 'split' called for nil:NilClass。知道可能是什么问题吗?谢谢!
    • 当然你已经阅读了这篇文章,但为了后代,这里是 Puppet 模板文档页面:docs.puppetlabs.com/guides/templating.html
    • 在结束标签 (-%&gt;) 中添加了一个破折号,这样就不会在您的 cron-job 中添加不需要的空格。
    • 找到它:它应该是&lt;% c_repo.split(',').each_with_index do |repo, i| -%&gt;,即没有$ 符号。但它在每行的开头添加了 2 个空格。它从字面上理解“缩进”。干杯!!
    猜你喜欢
    • 2011-02-22
    • 2013-10-14
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    相关资源
    最近更新 更多