使用嵌入式 Ruby 代码

Ruby, like fire, is a very useful friend, and a very dangerous enemy.

— Mikkel Bruun

在模板中使用嵌入式 Ruby 帮助构建动态的配置文件或实现数组遍历是一种强大的方式。 然而,你也可以在配置清单中使用 inline_template 函数直接嵌入 Ruby 而不必使用分离的模板文件。

操作步骤

在 Puppet 的配置清单中将 Ruby 代码传递给 inline_template 函数:

cron { "nightly-job":
    command => "/usr/local/bin/nightly-job",
    hour => "0",
    minute => inline_template("<%= hostname.hash.abs % 60 %>"),
}

工作原理

传递给 inline_template 的字符串都会被执行,就像 ERB 模板一样。 也就是说,在分隔符 <%= 和 %> 之间的所有内容都被当做 Ruby 代码执行, 其余的将被视为字符串。

参见本书