# openvpn.pp

class openvpn {
    package {
        'openvpn':
            ensure => installed;
    }
    service {
        'openvpn':
            ensure     => running,
            enable     => true,
            hasrestart => true,
            hasstatus  => true,
            require    => Exec['concat_/etc/default/openvpn'];
    }
    file {
        '/etc/openvpn':
            ensure  => directory,
            require => Package['openvpn'];
    }
    file {
        '/etc/openvpn/keys':
            ensure  => directory,
            require => File['/etc/openvpn'];
    }

    include concat::setup

    concat {
        '/etc/default/openvpn':
            owner  => root,
            group  => root,
            mode   => 644,
            warn   => true,
            notify => Service['openvpn'];
    }

    concat::fragment {
        'openvpn.default.header':
            content => template('openvpn/etc-default-openvpn.erb'),
            target  => '/etc/default/openvpn',
            order   => 01;
    }

}