noqqe » blog | sammelsurium | photos | projects | about

Puppet

2013-06-30 @ Puppet, Software

Installation der Pakete

Repos von Puppetlabs laden

wget http://apt.puppetlabs.com/puppetlabs-release-bionic.deb
wget http://apt.puppetlabs.com/puppetlabs-release-buster.deb


dpkg -i puppetlabs-release-wheezy.deb apt-get update && apt-get install puppet-agent

Zertifikat anfordern:

puppet agent -t --server <puppetmaster> --environment <envname>

Nun auf dem entsprechenden puppet master den Fingerprint vergleichen und auf dem puppet master den Certificate Request signieren:

puppetserver ca sign <certname>

Require

Um Abhängig von mehreren Resourcen zu sein:

require    => [ Group[users], Group[admin] ],

defined()

Um zu checken ob eine Resource evtl noch an einer anderen Stelle definiert worden ist, kann mit dieser Zeile gemacht werden.

if ! defined(Package['apparmor']) {
  package { 'apparmor':
    ensure => purged,
  }
}

Parameterized Class

Definition

class echo_class ($to_echo = "default value") {
  notify {"What are we echoing? ${to_echo}.":}
}

Class Call

class { 'echo_class':
  to_echo => 'Custom value',
}

Array Iteration

$my_env => [ shared1, shared2, shared3 ]

define myResource {
  file { "/var/tmp/$name":
    ensure => directory,
    mode => 0600,
  }
  user { $name:
    ensure -> present,
  }
}

myResource { $my_env: }

Default Ports um zum Master zu connecten

Port 8140 ist default

aber mit --masterport 8888 kann das umspezifiziert werden.

Puppet Nodes deaktivieren

Um Hosts aus Puppet/Puppetboard/PuppetDB zu werfen kann man folgende Zeilen nutzen (Puppet 6)

puppet node deactivate <certname>
puppetserver ca list --all | grep fqdn
puppetserver ca clean --certname <certname>