*的 *修改 **
我通过玩游戏找到了解决方案:
class add_route
{
exec { "route_to_internal_network":
command => "C:\Windows\System32\ROUTE.EXE add 192.168.5.254 mask 255.255.255.255 10.5.5.5 -p",
unless => "C:\Windows\System32\reg.exe query HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes /f 192.168.5.254,255.255.252.0,10.5.5.5,1",
}
}
如果其他人遇到类似的问题,我会留下这篇文章
*的 *修改 **
我正在尝试编写一个puppet清单,为我的一些Windows主机服务器添加一个持久的静态路由。到目前为止,我正在考虑创建一个类:
class add_route
{
exec { "route_to_internal_network":
command => "C:\Windows\System32\ROUTE.EXE add 192.168.5.254 mask 255.255.255.255 10.5.5.5 -p",
}
}
但是,每当木偶客户端与木偶大师签到时,此清单将执行命令。
我希望在我的班级中使用onlyif
,但在尝试检查包含我的路线的缺席注册表值时似乎有点混乱。这是最好的方法吗?还有其他想法吗?
我想我需要做类似的事情:
class add_route
{
exec { "route_to_internal_network":
command => "C:\Windows\System32\ROUTE.EXE add 192.168.5.254 mask 255.255.255.255 10.5.5.5 -p",
onlyif => ???
}
}
我希望我的onlyif
语句与
C:\Windows\System32\reg.exe query HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes /f '192.168.5.254,255.255.255.255,10.5.5.5,1'
如果上述命令的结果是:
搜索结束:找到0个匹配。
但是,我认为onlyif
只是在查找返回码,因此无论是否找到此值,命令都会成功完成。
有没有人知道如何检查木偶清单中是否缺少注册表值?
答案 0 :(得分:2)
我通过玩游戏找到了解决方案:
class add_route
{
exec { "route_to_internal_network":
command => "C:\Windows\System32\ROUTE.EXE add 192.168.5.254 mask 255.255.255.255 10.5.5.5 -p",
unless => "C:\Windows\System32\reg.exe query HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes /f 192.168.5.254,255.255.255.255,10.5.5.5,1",
}
}
如果其他人遇到类似的问题,我会留下这篇文章