In der Juni-Ausgabe des IT-Administrator dreht sich alles um den Schwerpunkt 'Monitoring & Dokumentation'. So zeigen wir Ihnen, wie die Netzwerküberwachung in ... (mehr)

Neue Systeme provisionieren

Nachdem Sie das Foreman-System als Smart-Proxy für die Umgebung definiert haben, können Sie erste Vorbereitungen für die Provisionierung von neuen Systemen treffen. Für Testzwecke eignet sich ein Lab aus virtuellen Maschinen. Grundlage für diesen Artikel war beispielsweise eine Foreman-Installation innerhalb einer KVM-VM auf Basis des libvirt-Frameworks. Alle neu zu installierenden Systeme sollen ebenfalls als virtuelle Instanzen aufgebaut werden. Haben Sie sich mit einem solchen Setup einmal vertraut gemacht, fällt es später nicht schwer, dieses auf eine komplexere Testumgebung zu übertragen.

Templates vereinfachen die Arbeit

Um nun zu definieren, wie die Installation eines neuen Systems aussehen soll, ist unter "Hosts / Installation Media" eine Quelle für das neu zu installierende Betriebssystem anzugeben. Neben bereits vordefinierten öffentlichen Mirror-Servern der einzelnen Distributionen lassen sich hier natürlich auch eigene Software-Repositories eintragen. Dies kann ein reguläres yum-Repository sein oder ein komplexeres Setup beispielsweise auf Basis von pulp. Wer möchte, kann unter "Hosts / Partition Tables" eine eigene Partitionierung für das neue System festlegen, ansonsten kommt ein Default-Layout zum Einsatz.

Das Herzstück des Provisionierungs-Prozesses definieren Sie jedoch über die sogenannten "Provisioning-Templates". Diese legen fest, wie genau die Installation ablaufen soll. Im Beispiel kommt eine PXE-basierte Kickstart-Installation zum Einsatz, insofern werden diese Templates unter "Hosts / Provisioning-Templates" ausgewählt und an die Umgebung gebunden. Im nächsten Schritt ist ein neues Betriebssystem zu generieren ("Hosts / Operating System"). Dieses setzt sich dann aus den zuvor festgelegten Eigenschaften Installations-Medium, Partitionierungstabelle und Provisionierungsmethode zusammen. Zusätzlich können Sie noch Parameter mit übergeben, die zum Zeitpunkt der Installation ausgewertet werden. Schließlich sind unter der Reiterkarte "Infrastructure" noch das gewünschte Netzwerk und die Domain zu definieren. Hier sollten Sie dann auch darauf achten, dass die Foreman-Installation als TFTP-Proxy eingetragen ist.

Listing: init.pp für Apache



foreman-installer \
-no-enable-foreman \
-no-enable-puppet \
-enable-foreman-proxy \
-foreman-proxy-puppetca=false \
-foreman-proxy-puppetrun=false \
-foreman-proxy-tftp=false \
-foreman-proxy-dhcp=true \
-foreman-proxy-dhcp-interface=eth0 \
-foreman-proxy-dhcp-gateway=10.0.0.1 \
-foreman-proxy-dhcp-range="10.0.0.50 10.0.0.200" \
-foreman-proxy-dhcp-nameservers="10.0.1.2,10.0.1.3" \
-foreman-proxy-foreman-baseurl=http://foreman.example.com \
-foreman-proxy-oauth-consumer-key = 
-foreman-proxy-oauth-consumer-secret = 

Um nun neue KVM-Maschinen auf Basis von libvirt zu installieren, ist das Installationsnetzwerk der Umgebung entsprechend zu ändern. Hier müssen Sie neben dem TFTP-Server auch ein Mapping zwischen IP- und MAC-Adresse vornehmen. Foreman kann diese Änderungen auch selbstständig durchführen, da die Software ja in der Lage ist, dynamische Einträge auf einem DHCP-Server durchzuführen. Um das Set-up nicht unnötig kompliziert zu gestalten, erfolgt dieser Schritt hier manuell. Die folgenden Schritte erklären das Prinzip, die verwendeten Werte sind natürlich entsprechend der eigenen Umgebung anzupassen:

virsh net-dumpxml default > /tmp/net-default
virsh net-destroy default
virsh net-undefine default

Die Datei »/tmp/net-default« ist dann um die notwendigen Einträge zu erweitern. Das Listing "Erweitern der Default-Netzwerkkonfiguration" zeigt hierzu ein Beispiel. Schließlich ist das Netzwerk wieder zu aktivieren:

virsh net-define /tmp/net-default
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023