Puppet:如果启动时未安装文件系统,则停止服务

Puppet:如果启动时未安装文件系统,则停止服务,puppet,Puppet,编写puppet代码的最佳方法是什么?“如果未装入/文件系统,请停止crond”(文件系统装入由Redhat Cluter负责)我建议编写一个检查文件系统装入的变量。使用该变量,您可以声明crond服务已停止或正在运行,等等 或者,您可以执行类似于exec的操作来停止crond,使用onlyif检查装载。例如,在mount的输出中搜索文件系统的名称 自定义事实处理方法更干净、更可靠、风格更好;如果您有急事,exec应该可以正常工作。exec可能是处理此问题的最简单方法: exec { "stop

编写puppet代码的最佳方法是什么?“如果未装入/文件系统,请停止crond”(文件系统装入由Redhat Cluter负责)

我建议编写一个检查文件系统装入的变量。使用该变量,您可以声明
crond
服务已停止
正在运行
,等等

或者,您可以执行类似于
exec
的操作来停止
crond
,使用
onlyif
检查装载。例如,在
mount
的输出中搜索文件系统的名称


自定义事实处理方法更干净、更可靠、风格更好;如果您有急事,
exec
应该可以正常工作。

exec
可能是处理此问题的最简单方法:

exec { "stop_crond" :
   command => "service crond stop",
   path => "/sbin:/usr/sbin:/bin:/usr/bin",
   unless => 'mount | grep -oq "/filesystem"',
}
下面是我的作品

exec { "stop_crond":
command => "service crond stop",
path    => "/sbin:/usr/sbin:/bin:/usr/bin",
unless  => '/bin/cat /proc/mounts | /bin/grep -q \' /mnt \'';
}

我认为,在尝试执行任何操作之前,最好调整cron作业以检查文件系统是否已装入,而不是杀死cron(它执行与装入无关的其他任务)。