我正在使用Puppet將證書從Puppet Server傳輸到Windows節點。 Puppet Server有一個文件夾,其中新的證書正從我的CA(另一臺服務器)複製。因此,有時Puppet可能找不到節點的證書(它不從CA轉移到源目錄),這就是爲什麼我需要額外檢查源文件夾中的證書狀態。代碼必須檢查主機名,找到適當的證書並將其傳輸到節點。在我試圖複製它之前,我怎樣才能在模塊文件目錄(puppet:/// modules/modulename /)中檢查證書的存在?在複製之前檢查木偶模塊文件源
file { "D:\$hostname.pfx":
ensure => present,
source => all,
exec { 'Import certificate':
command => "if((Get-ChildItem -Path Cert:\LocalMachine\My\ | ? {$_.Issuer -like "*CN=example*"}).HasPrivateKey | select-string -pattern "True") -or()\
{\$pwd = ConvertTo-SecureString -String "Password" -Force –AsPlainText; Import-PfxCertificate –FilePath ${cert_path}\$hostname.pfx cert:\localMachine\my -Password \$pwd}",
path => $::path,
onlyif => "Test-Path ${cert_path}\${hostname}.pfx",
provider => 'powershell',
}
這與最佳實踐相去甚遠。你有這樣做的理由嗎? –
嗯,是的,有一個實施這樣一個奇怪的解決方案的原因。 –
您所提問的內容與您提供的(語法錯誤)代碼有何關係? –