我有一个bash命令文件,将返回1或0。我想运行表示,从木偶命令:包括有条件的基于bash脚本
exec { 'Check if Thinkpad':
command => 'sudo dmidecode | grep -q ThinkPad && echo 1 || echo 0',
path => '/usr/bin/:/bin/bash/',
environment => "HOME=/root"
}
有没有一种方法,我可以使用包括文件傀儡只有当我的命令返回1?
file { '/etc/i3/config':
source => 'puppet:///modules/i3/thinkpad',
owner => 'root',
group => 'root',
mode => '0644',
}
更正:这是一个外部事实,它们应该放置在模块内部的facts.d中,事实查找应该是$ facts ['thinkpadcheck']',并且facter lookup应该是'sudo facter -p thinkpadcheck'。另外,您应该将文档添加到您的答案中:https://docs.puppet.com/facter/3.6/custom_facts.html#external-facts。有了这些修复,这是一个很好的答案。 –
@MattSchuchard我有点困惑 - 你提到的文档列出了'/ etc/facter/facts.d /'作为放置我的facter脚本的地方之一。为什么我想把它们放在模块中?就此而言,我为什么要将我的自定义事实“附加”到只有一个模块? – hymie
@MattSchuchard您可能会使用比我更新的puppet/facter版本,因为您的大部分更改都不适用于我。 – hymie