From 4401054112d89fbd52cc56cc6dc0c2b5212f279a Mon Sep 17 00:00:00 2001 From: Elisiano Petrini Date: Thu, 4 Apr 2013 16:18:12 +0200 Subject: Added support for monolithic .ovpn files Useful for distributing configurations to mobile devices --- manifests/client.pp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'manifests') diff --git a/manifests/client.pp b/manifests/client.pp index 4f3ad80..10e9b81 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -174,6 +174,22 @@ define openvpn::client( require => [ File["/etc/openvpn/${server}/download-configs/${name}/${name}.conf"], File["/etc/openvpn/${server}/download-configs/${name}/keys/ca.crt"], File["/etc/openvpn/${server}/download-configs/${name}/keys/${name}.key"], - File["/etc/openvpn/${server}/download-configs/${name}/keys/${name}.crt"] ]; + File["/etc/openvpn/${server}/download-configs/${name}/keys/${name}.crt"] ], + notify => Exec["generate ${name}.ovpn in ${server}"]; + + } + + exec { + "generate ${name}.ovpn in ${server}": + cwd => "/etc/openvpn/${server}/download-configs/", + command => "/bin/rm ${name}.ovpn; cat ${name}/${name}.conf|perl -lne 'if(m|^ca keys/ca.crt|){ chomp(\$ca=`cat ${name}/keys/ca.crt`); print \"\n\$ca\n\"} elsif(m|^cert keys/${name}.crt|) { chomp(\$crt=`cat ${name}/keys/${name}.crt`); print \"\n\$crt\n\"} elsif(m|^key keys/${name}.key|){ chomp(\$key=`cat ${name}/keys/${name}.key`); print \"\n\$key\n\"} else { print} ' > ${name}.ovpn", + refreshonly => true, + require => [ File["/etc/openvpn/${server}/download-configs/${name}/${name}.conf"], + File["/etc/openvpn/${server}/download-configs/${name}/keys/ca.crt"], + File["/etc/openvpn/${server}/download-configs/${name}/keys/${name}.key"], + File["/etc/openvpn/${server}/download-configs/${name}/keys/${name}.crt"], + ], } + + } -- cgit v1.2.3