0

在运行其他清单文件之前,我需要验证内存、处理器和端口连接等代理。因此,我通过将全局事实与语句和执行资源保持一致,创建了如下清单。

class vc {
#Validateing Infra Before applying chnages
if $::facts['memorysize'] >= '4.00 GiB'and $::facts['processorcount'] >= 2 and Exec['port_connectivity'] {
  notify { "Infra validated" : }
  include vc::configs 
}
else {
  notify { "Infra not meeting requirements" : }
} 
# Checking port connecitivity to puppet master  
exec { 'port_connectivity':
  command   => 'New-Item c:\debug.txt -type file -Force',
  unless    => 'if((New-Object System.Net.Sockets.TcpClient ("linux-NAS-storage.com",6163)).connected -eq $true) { exit 1 }',
  provider  => powershell,
  }  
}

if $::facts['memorysize'] >= '4.00 GiB'and $::facts['processorcount'] >= 2 and Exec['port_connectivity']我的主题是 puppet 只有在此条件成功时才应执行。如果 exec 命令成功并且facter返回true,那么只有它应该执行,但是在清单之后单独执行而不检查该exec语句是否为true。我的主要目的是在运行 puppet manifest 之前验证端口。任何人都可以帮忙吗

4

0 回答 0