]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/ssl/manifests/init.pp
restore external dependency on exec
[dsa-puppet.git] / modules / ssl / manifests / init.pp
index 7cd1583084504910b3548e672af8368afe591aa8..3696eb4561e93f64815d92856d8f19daef9c9d28 100644 (file)
 class ssl {
-    package { openssl: ensure => installed }
 
-    file {
-        "/etc/ssl/debian":
-          ensure  => directory,
-          mode    => 755,
-          purge   => true
-          recurse => true,
-          force   => true,
-          source  => "puppet:///files/empty/"
-        ;
-        "/etc/ssl/debian/certs":
-          ensure  => directory,
-          mode    => 755,
-          purge   => true,
-          force   => true,
-          recurse => true,
-          source  => "puppet:///files/empty/"
-        ;
-        "/etc/ssl/debian/crls":
-          ensure  => directory,
-          mode    => 755,
-          purge   => true,
-          force   => true,
-          recurse => true,
-          source  => "puppet:///files/empty/"
-        ;
-        "/etc/ssl/debian/keys":
-          ensure  => directory,
-          mode    => 750,
-          purge   => true
-          force   => true,
-          recurse => true,
-          source  => "puppet:///files/empty/"
-        ;
-        "/etc/ssl/debian/certs/thishost.crt":
-          source  => "puppet:///ssl/clientcerts/$fqdn.crt",
-          notify  => Exec["c_rehash /etc/ssl/debian/certs"],
-          ;
-        "/etc/ssl/debian/keys/thishost.key":
-          source  => "puppet:///ssl/clientcerts/$fqdn.key",
-          mode    => 640
-          ;
-        "/etc/ssl/debian/certs/ca.crt":
-          source  => "puppet:///ssl/clientcerts/ca.crt",
-          notify  => Exec["c_rehash /etc/ssl/debian/certs"],
-          ;
-        "/etc/ssl/debian/crls/ca.crl":
-          source  => "puppet:///ssl/clientcerts/ca.crl",
-          ;
-    }
+       $cacert = 'mozilla/UTN_USERFirst_Hardware_Root_CA.crt'
+       $caconf = '/etc/ca-certificates.conf'
+
+       package { 'openssl':
+               ensure   => installed,
+       }
+       package { 'ssl-cert':
+               ensure   => installed,
+       }
+       package { 'ca-certificates':
+               ensure   => installed,
+       }
+
+       file { '/etc/ssl/servicecerts':
+               ensure   => directory,
+               source   => 'puppet:///modules/ssl/servicecerts/',
+               mode     => '0644',
+               purge    => true,
+               recurse  => true,
+               force    => true,
+               notify   => Exec['refresh_debian_links'],
+       }
+       file { '/etc/ssl/debian':
+               ensure   => directory,
+               source   => 'puppet:///files/empty/',
+               mode     => '0644',
+               purge    => true,
+               recurse  => true,
+               force    => true,
+       }
+       file { '/etc/ssl/debian/certs':
+               ensure  => directory,
+               mode    => '0755',
+       }
+       file { '/etc/ssl/debian/crls':
+               ensure  => directory,
+               mode    => '0755',
+       }
+       file { '/etc/ssl/debian/keys':
+               ensure  => directory,
+               mode    => '0750',
+               group   => ssl-cert,
+               require => Package['ssl-cert'],
+       }
+       file { '/etc/ssl/debian/certs/thishost.crt':
+               source  => "puppet:///modules/ssl/clientcerts/${::fqdn}.client.crt",
+               notify  => Exec['c_rehash /etc/ssl/debian/certs'],
+       }
+       file { '/etc/ssl/debian/keys/thishost.key':
+               source  => "puppet:///modules/ssl/clientcerts/${::fqdn}.key",
+               mode    => '0440',
+               group   => ssl-cert,
+               require => Package['ssl-cert'],
+       }
+       file { '/etc/ssl/debian/certs/ca.crt':
+               source  => 'puppet:///modules/ssl/clientcerts/ca.crt',
+               notify  => Exec['c_rehash /etc/ssl/debian/certs'],
+       }
+       file { '/etc/ssl/debian/crls/ca.crl':
+               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 { 'refresh_debian_links':
+               command     => 'cp -f -s ../servicecerts/* .',
+               cwd         => '/etc/ssl/certs',
+               refreshonly => true,
+               notify      => Exec['delete_unused_links'],
+       }
+       exec { 'delete_unused_links':
+               command     => 'find -L . -mindepth 1 -maxdepth 1 -type l -delete',
+               cwd         => '/etc/ssl/certs',
+               refreshonly => true,
+               notify      => Exec['refresh_normal_hashes'], # see NOTE 1
+       }
+       exec { 'modify_configuration':
+               command     => "sed -i -e 's#!${cacert}#${cacert}' ${caconf}",
+               onlyif      => "grep -Fqx '!${cacert}' ${caconf}",
+               notify      => Exec['refresh_normal_hashes'],
+               require     => Package['ca-certificates'],
+       }
+       exec { 'c_rehash /etc/ssl/debian/certs': # refresh_debian_hashes
+               refreshonly => true,
+               require     => Package['openssl'],
+       }
+       exec { 'refresh_normal_hashes':
+               # NOTE 1: always use update-ca-certificates to manage hashes in
+               #         /etc/ssl/certs otherwise /etc/ssl/ca-certificates.crt will
+               #         get a hash overriding the hash that would have been generated
+               #         for another certificate ... which is problem, comrade
+               # NOTE 2: always ask update-ca-certificates to freshen (-f) the links
+               command     => '/usr/sbin/update-ca-certificates -f',
+               refreshonly => true,
+               require     => Package['ca-certificates'],
+       }
 
-    exec { "c_rehash /etc/ssl/debian/certs":
-        refreshonly => true,
-    }
 }
-# vim:set et:
-# vim:set sts=4 ts=4:
-# vim:set shiftwidth=4: