Seite wählen

Vagrant Multi Instance Setup für Icinga 2 Cluster

von | Mrz 6, 2014 | CeBIT, DevOps, Icinga

Nachdem sich Vagrant bestens für Entwicklungs- und Testumgebungen eignet, ist es auch als Basis für Demo VMs ein sehr praktisches Tool (neben dem obligatorischen Provisioning durch z.B. Puppet). Neben den bestehenden Icinga 2 und Icinga Web 2 Vagrant Boxen stellt sich aber mitunter die Anforderung, mehrere Vagrant Boxen in einem Projekt zu bedienen – beispielsweise zwei Icinga 2 Instanzen, die mittels Icinga 2 Cluster Feature miteinander kommunizieren.
Kurz umrissen die Anforderungen

  • 2 Instanzen mit Hostnamen icinga2a, icinga2b
  • Clusterkommunikation in privatem Netzwerk 192.168.33.0
  • HTTP Portforwarding auf localhost Port 8080 bzw 8081
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  servers = { 'icinga2a' => '192.168.33.10',
              'icinga2b' => '192.168.33.20'
            }
  http_port = { 'icinga2a' => 8080,
                'icinga2b' => 8081
              }
  servers.each do |server_name, server_ip|
    config.vm.define server_name do |app_config|
      app_config.vm.box = "centos-6.5-i386-vbox"
      app_config.vm.box_url = "http://boxes.icinga.org/centos-65-i386-vbox.box"
      app_config.vm.hostname = "#{server_name.to_s}"
      app_config.vm.network :forwarded_port, guest: 80, host: http_port[server_name], auto_correct: true
      app_config.vm.network :private_network, ip: "#{server_ip}"
      app_config.vm.provider "virtualbox" do |vb|
        vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate//vagrant/config", "1"]
      end
      app_config.vm.provision :puppet do |puppet|
        puppet.module_path = ".vagrant-puppet/modules"
        puppet.manifests_path = ".vagrant-puppet/manifests"
        #puppet.options = "--verbose --debug"
      end
      app_config.vm.provision :shell, :path => ".vagrant-puppet/manifests/finalize.sh"
    end
  end
end

Die Verteilung der Icinga 2 Clusterkonfiguration sowie generell die Installation von Icinga 2 und Icinga Web 2 findet dann im Puppet Provisioner statt. Details zur Icinga 2 Clusterkonfiguration gibts in der Icinga Dokumentation sowie bei uns  im Webinar Archiv. Wir installieren auch gerne eine Testumgebung und helfen bei der Migration von Icinga 1.x auf Icinga 2.
Wie baut man die zugehörigen Puppetmodule? Dazu gibts Beispiele im Icinga Git sowie wir auch Puppet Schulungen für Wissbegierige im Portfolio haben.
Ein kurzes Beispiel anhand einer vorbereiteten Konfiguration:

file { '/etc/icinga2/cluster':
  owner   => icinga,
  group   => icinga,
  ensure  => 'directory',
  require => Package['icinga2']
}
file { "/etc/icinga2/cluster/$hostname.conf":
  owner   => icinga,
  group   => icinga,
  source  => "puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/cluster/$hostname.conf",
  require => File['/etc/icinga2/cluster']
}

Cebit Blog
Dieses Vagrant Setup habe ich für das Icinga 2 Webinar gestern verwendet, welches dann auch auf der CeBit nächste Woche vor Ort bei uns am Stand in Halle 6, Stand E16, (310) besichtigt werden kann – vorbeikommen lohnt sich auf jeden Fall!
Und wer sich nun fragt, wieso Entwickler nicht nur magischen Code fabrizieren, sondern auch mit genialen Tools arbeiten dürfen, dem sei ans Herz gelegt – komm zu uns! Wir suchen immer motivierte, entdeckungsfreudige Kollegen 🙂

0 Kommentare

Trackbacks/Pingbacks

  1. Weekly Snap: Vagrant & Virtual Box, Puppet Camp Berlin & Ceph Day › NETWAYS Blog - […] Michael F configured a multi-instance Vagrant setup to run an Icinga 2 cluster while Markus optimised Virtual Box images…
  2. Icinga 2 Vagrant Box Reloaded › NETWAYS Blog - […] den ersten Icinga 2 Webinaren mit dem schönen Icinga 2 Cluster habe ich mich bereits an einem Multi-Instanz Vagrant…
  3. Vagrant boxes revamped | Icinga - […] pretty useful for our demo cases – the first draft of the Icinga 2 Cluster happened to be a…
  4. Icinga2-Cluster-Demo unter Windows mit Vagrant › NETWAYS Blog - […] zum Einsatz, so dass im Webinterface auch nicht immer alles grün ist. Entstanden ist das ganze als Demo für…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema CeBIT | DevOps | Icinga