Icinga2 mit puppet clients: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 80: Zeile 80:
 
alles was in dieser classe berücksichticht werden soll mus in den ersten {} stehen
 
alles was in dieser classe berücksichticht werden soll mus in den ersten {} stehen
  
also aufpassen das am schlus der datei mit } abgeschlosen ist
+
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
 
wir prüfen ob icinga2 installiert ist wenn nicht wird es installier sofern die repository stimmen
Zeile 109: Zeile 109:
 
     owner => root, group => root,
 
     owner => root, group => root,
 
     require => Package["icinga2"]
 
     require => Package["icinga2"]
 
+
}
  
  

Version vom 2. Oktober 2015, 07:27 Uhr

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"]
}