X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fssl%2Fmanifests%2Finit.pp;h=909d76f04e02e1df3edcc5c30e500ac57d3cab94;hb=43c702b0d20465b1a6fe0597d309543190f950aa;hp=86094b1a90bdb2b319c42d6ba3b9a013e54a1520;hpb=3eb533e5499e66423bafdedaf6c7d08ead1772de;p=mirror%2Fdsa-puppet.git diff --git a/modules/ssl/manifests/init.pp b/modules/ssl/manifests/init.pp index 86094b1a9..909d76f04 100644 --- a/modules/ssl/manifests/init.pp +++ b/modules/ssl/manifests/init.pp @@ -1,7 +1,22 @@ class ssl { - package { 'openssl': - ensure => installed + package { + 'openssl': + ensure => installed, + ; + 'ssl-cert': + ensure => installed, + ; + } + + file { '/etc/ssl/servicecerts': + ensure => directory, + mode => '0755', + purge => true, + recurse => true, + force => true, + source => 'puppet:///modules/ssl/servicecerts/', + notify => Exec['make_new_service_links'] } file { '/etc/ssl/debian': @@ -22,7 +37,9 @@ class ssl { } file { '/etc/ssl/debian/keys': ensure => directory, + group => ssl-cert, mode => '0750', + require => Package['ssl-cert'], } file { '/etc/ssl/debian/certs/thishost.crt': source => "puppet:///modules/ssl/clientcerts/${::fqdn}.client.crt", @@ -30,7 +47,9 @@ class ssl { } file { '/etc/ssl/debian/keys/thishost.key': source => "puppet:///modules/ssl/clientcerts/${::fqdn}.key", - mode => '0640' + mode => '0440', + group => ssl-cert, + require => Package['ssl-cert'], } file { '/etc/ssl/debian/certs/ca.crt': source => 'puppet:///modules/ssl/clientcerts/ca.crt', @@ -40,6 +59,33 @@ class ssl { source => 'puppet:///modules/ssl/clientcerts/ca.crl', } + file { '/etc/ssl/debian/certs/thishost-server.crt': + source => "puppet:///modules/exim/certs/${::fqdn}.crt", + notify => Exec['c_rehash /etc/ssl/debian/certs'], + } + file { '/etc/ssl/debian/keys/thishost-server.key': + source => "puppet:///modules/exim/certs/${::fqdn}.key", + mode => '0440', + group => ssl-cert, + require => Package['ssl-cert'], + } + + exec { 'make_new_service_links': + command => 'cd /etc/ssl/certs && cp -f --symbolic-link ../servicecerts/* .', + refreshonly => true, + notify => Exec['cleanup_dead_links'] + } + + exec { 'cleanup_dead_links': + command => 'find -L /etc/ssl/certs -mindepth 1 -maxdepth 1 -type l -delete', + refreshonly => true, + notify => Exec['c_rehash /etc/ssl/certs'] + } + + exec { 'c_rehash /etc/ssl/certs': + refreshonly => true, + } + exec { 'c_rehash /etc/ssl/debian/certs': refreshonly => true, }