我想用puppet创建openvpn证书。我有一个创建这些证书的脚本,但我想只在必要时执行它。清单看起来像这样:
[...]
$keydir = ['/etc/openvpn/easy-rsa/keys']
$usercerts = ["$keydir/user1.crt", "$keydir/user2.crt"]
exec { 'build-keys':
command => '/opt/openvpn/build-keys',
creates => $usercerts,
notify => Service['openvpn'],
}
[...]
首先它会创建认证,但是如果我修改了usercerts变量,它将不再启动脚本。
有没有限制,create参数无法处理数组?
如果存在这些文件中的任何一个或者全部存在,那么木偶会阻止执行吗?
我应该创建一个脚本来检查这些文件是否存在并将其放入onlyif?
答案 0 :(得分:1)
你不应该在课堂上这样做。
define openvpn_keys($username=$name, $keydir = '/etc/openvpn/easy-rsa/keys') {
$usercert = "$keydir/$username.crt"
exec { "build-keys-for-$username":
command => '/opt/openvpn/build-keys',
creates => $usercert,
notify => Service['openvpn'],
}
}
然后通过
使用此功能openvpn_keys {
[ "user1", "user2" ]:
}