Schlagwort: puppet

Puppet 5: Abgelaufene Zertifikate austauschen

Auf dem Puppet Master: Sollten die CSRs nicht mehr vorliegen, diese auf Basis der bisherigen Zertifikate neu erstellen und die alten Zertifikate umbenennen:

root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -x509toreq -in ca/ca_crt.pem -signkey ca/ca_key.pem -out ca/ca_csr.pem

root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -x509toreq -in certs/puppetmaster.example.net.pem -signkey private_keys/puppetmaster.example.net.pem -out certificate_requests/puppetmaster.example.net_csr.pem

root@puppetmaster.example.net:/var/lib/puppet/ssl# mv ca/ca_crt.pem ca/ca_crt.pem_old

root@puppetmaster.example.net:/var/lib/puppet/ssl# mv certs/puppetmaster.example.net.pem certs/puppetmaster.example.net.pem_old

Neue Zertifikate erstellen:

cat > extension.cnf <<_EOT_
[CA_extensions]
basicConstraints = critical,CA:TRUE
nsComment = "Puppet Ruby/OpenSSL Internal Certificate"
keyUsage = critical,keyCertSign,cRLSign
subjectKeyIdentifier = hash
_EOT_
root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -req -days 3650 -in ca/ca_csr.pem -signkey ca/ca_key.pem -out ca/ca_crt.pem -extfile extension.cnf -extensions CA_extensions

root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -req -days 3650 -in certificate_requests/puppetmaster.example.net_csr.pem -CA ca/ca_crt.pem -CAkey ca/ca_key.pem -CAserial ca/serial -out certs/puppetmaster.example.net.pem

Je Puppet Agent auf dem Server:

puppet ca destroy puppetclient.example.net

Auf jedem Puppet Client (Agent):

rm -r /var/lib/puppet/ssl && puppet agent --test

Je Puppet Agent auf dem Server:

puppet ca list
puppet ca sign puppetclient.example.net

Getestet mit Version 5.5.10
Quelle

Debian-Package mittels Puppet und wget installieren

Die Installation von dpkg-Packages mittels Puppet kann mit einer einfachen Klasse realisiert werden. Dabei wird das Installationspaket mit wget herunterladen, auf dem Zielsystem installiert und anschließend wieder entfernt.

class examplesoftware ($url) {

 $package_path = "/tmp/${title}"

 exec {'download':
  command  => "/usr/bin/wget -O ${package_path} ${url}"
 }

 package {'install':
  ensure   => installed,
  name     => "${title}",
  provider => 'dpkg',
  source   => "${package_path}"
 }

 file {'cleanup':
  ensure   => absent,
  path     => "${package_path}"
 }

 Exec['download'] -> Package['install'] -> File['cleanup']

}