【发布时间】:2021-09-28 09:02:20
【问题描述】:
抱歉,我是在 puppet 上开始我的 jorny 的,我正面临着使用该工具的第一个挑战。 我想检查 puppet 是否在服务器上安装了一个包,如果是,请保证它正在运行,如果没有安装,则跳到下一个任务。
class profile::windows::rapid7 {
$manage_rapid7 = lookup('manage_rapid7', Optional[Boolean], 'first', true)
$rapid7_filepath = 'C:\Program Files\Rapid7\Insight Agent\ir_agent.exe'
$rapid7_service_exists = find_file($rapid7_filepath)
if $facts['kernel'] == 'Windows' {
if $manage_rapid7 {
if($rapid7_service_exists){
service { 'ir_agent':
ensure => 'running',
enable => 'true',
}
}
}
}
}
正如你在上面看到的,如果安装了 rapid7,我会确定它正在运行,但现在我有一些服务器没有这个包,因此,我得到了错误。 所以我的问题是: 如果未安装此 pkg,是否可以跳过此任务?
最好的问候,
【问题讨论】:
-
这不是声明性语言的工作方式。您将编写该类以安装软件包并启动服务,然后仅将该类应用于满足您希望在该节点上配置此软件的任何条件的节点。
标签: conditional-statements puppet