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']私のテーマは、この条件が成功した場合にのみパペットが実行されることです。exec コマンドが成功し、facter が true を返した場合、それのみが実行されますが、次のマニフェストは、その exec ステートメントが true かどうかをチェックせずに個別に実行されます。主な目的は、パペット マニフェストを実行する前にポートを検証する必要があることです。助けてください

4

0 に答える 0