我在测试虚拟机中安装了 Foreman,我想创建一些自定义 kickstart 文件。我知道 Foreman 在主机创建期间会呈现模板。但如果出现错误、类型、缺少变量等,安装就会失败。
那么,如何在不实际尝试安装新虚拟机的情况下测试我的模板?
显然,每次我想更改模板或代码片段时都启动一个新的构建是适得其反的。
答案1
模板编辑器上方是一个小预览按钮 - 选择它,然后从右侧的下拉菜单中选择您想要为其呈现模板的主机。
需要具有相同操作系统的托管主机,因此必须在预览模板之前创建它(通过以下方式进行配置设置新主人,不是通过 Puppet 或事实上传创建的。)
模板的渲染版本将显示如下:
选择输入再次单击选项卡,您就可以返回编辑模板。这一切都无需保存 + 重新访问编辑页面。预览渲染的模板时不会保留任何更改,只有保存时才会保留。
另请参阅Foreman 1.9 发布亮点 - 模板预览观看展示该功能的简短截屏视频。
答案2
检查语法是否正确
erb -P -x -T '-' template.erb | ruby -c
要查看模板中写入的内容比较复杂,但您可以查看完成此 ruby 脚本
require 'erb'
require 'ostruct'
class ErbalT < OpenStruct
def render(template)
ERB.new(template).result(binding)
end
end
et = ErbalT.new({ :kernel => '4.8.4', 'os' => 'Linux' })
puts et.render(File.read(PATH_TO_TEMPLATE))
根据您想要测试的模板,您需要将所有预期的变量作为参数发送。
还有一个针对 erb 模板的答案 - 请参阅https://stackoverflow.com/questions/8954706/render-an-erb-template-with-values-from-a-hash