我正在使用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',
}
这与最佳实践相去甚远。你有这样做的理由吗? –
嗯,是的,有一个实施这样一个奇怪的解决方案的原因。 –
您所提问的内容与您提供的(语法错误)代码有何关系? –