我正在尝试从主服务器手动将 Java 或 ActiveMQ 安装到我的代理服务器中,安装对我来说工作正常,但我面临的问题是,每当我在我的代理 ActiveMQ 安装中一次又一次地运行 puppet agent -t 时,基本上 ActiveMQ 安装都不会检查我的清单。
1.) 我们如何使用清单检查自定义服务是否正在运行? 2) 我们如何使用条件(if、else...)语句实现这一点?
请在下面找到我的代码..
类 activemq { 包括 wget::gxactivemq
exec { 'ActiveMQExe':
command => "/bin/tar xzf /gx/mnt/software/ESB/apache-activemq-5.5.1-bin.tar.gz",
cwd => "/gx/mnt/software/ESB/",
require => [wget::fetch["activemqDownload"]],
logoutput => true,
}
file { '/gx/logical/ESB/':
ensure => link,
owner => "ubuntu",
group => "ubuntu",
target => '/gx/mnt/software/ESB/',
require => [Exec["ActiveMQExe"]],
}
file { '/gx/logical/ESB/apache-activemq-5.5.1':
ensure => "directory",
owner => "ubuntu",
group => "ubuntu",
recurse => true,
require => [Exec["ActiveMQExe"],File["/gx/logical/ESB/"]],
}
file { '/gx/logical/ESB/apache-activemq-5.5.1/conf':
ensure => "directory",
owner => "ubuntu",
group => "ubuntu",
mode => 777,
recurse => true,
require => [Exec["ActiveMQExe"],File["/gx/logical/ESB/"]],
} }
谢谢,Jithin
答案1
一种可能性可能是使用 Exec 的“unless”、“creates”或“onlyif”子句:换句话说,仅当 tar 命令创建的文件(或目录)之一尚不存在时才调用“tar”命令。
同样,关于服务,你可能需要查看以下文档:服务资源。