Icinga2 mit puppet clients

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

puppet zertifikate verteilen

ein modul erstellen wie unten im beispiel


class cert {
$cert = "${fqdn}.crt"
$key = "${fqdn}.key"


2 variablen setzen

damit wir die zertifikate richtig benen können

fqnd steht hier für fully qualified domain name

alls string würde der inhalt so ausehen

$key = irgendwas.xinux.org.key


file { '/etc/ssl/xin-ca.crt':
  ensure => file,
      mode   => 664,
      owner => root,
      group => root,
      source => 'puppet:///modules/cert/xin-ca.crt'
}
file { "/etc/ssl/$cert":
  ensure => file,
      mode   => 664,
      owner => root,
      group => root,
      source => "puppet:///modules/cert/$cert"
}
file { "/etc/ssl/$key":
 ensure => file,
      mode   => 664,
     owner => root,
      group => root,
      source => "puppet:///modules/cert/$key"
}

die source zeigt was kopiert werden soll

und file{wo es auf dem client landen soll}

mode,owner,group die rechte die auf dem client gesetzt werden sollen

icinga2 installation restart & verlinken

mkdir /etc/puppet/modules/icinga2-client

den ordner so strukturiern

Treeicinga2.png


  • die init.pp
class icinga2-client {
Exec { path => [ "/bin/", "/sbin/" , "/usr/bin/", "/usr/sbin/" ] }
  package { "icinga2":
    ensure => present,
    require => Exec["icinga_repository"],
  }
  exec { "add-apt-repository ppa:formorer/icinga && apt-get update":
    alias => "icinga_repository",
    creates => "/etc/apt/sources.list.d/formorer-icinga-trusty.list",
    require => Package["software-properties-common"]
} 

  package { "software-properties-common":
    ensure => present
  }


alles was in dieser classe berücksichticht werden soll mus in den ersten {} stehen

also aufpassen das am schlus die datei mit } abgeschlosen ist

wir prüfen ob icinga2 installiert ist wenn nicht wird es installier sofern die repository stimmen

falls nicht fügen wird die repository hinzu wen software-properties-common installiert ist wen nicht installieren wir dies


  • kopieren der zertifikate auf den client
file { "/etc/icinga2/pki/trusted-master.crt":
 ensure => file,
     mode   => "664",
     owner => root,
     group => root,
     source => "puppet:///modules/icinga2client/trusted-master.crt",
     require => Package["icinga2"]
}
file {  '/etc/icinga2/zones.conf':
   content  => template('icinga2client/zones.conf'),
   mode => "0644",
   owner => root, group => root,
   require => Package["icinga2"]
}
file {  '/etc/icinga2/constants.conf':
   content  => template('icinga2client/constants.conf'),
   mode => "0644",
   owner => root, group => root,
   require => Package["icinga2"]
}


  • verlinken der certifcate
file { '/etc/icinga2/pki/ca.crt':
  ensure => 'link',
  target => '/etc/ssl/xin-ca.crt',
  require => Package["icinga2"]
}
file { "/etc/icinga2/pki/${fqdn}.crt":
  ensure => 'link',
  target => "/etc/ssl/${fqdn}.crt",
  require => Package["icinga2"]
}
file { "/etc/icinga2/pki/${fqdn}.key":
  ensure => 'link',
  target => "/etc/ssl/${fqdn}.key",
  require => Package["icinga2"]
}