Tag,
da mein erster Projektantrag (Planung und Umsetzung der ausfallfreien Migration eines redundanten
DNS-Serverpaars) wegen fehlender fachlicher Tiefe und Breite komplett ablehnt wurde, würde ich mich über ein Feedback zum neuen Antrag freuen.
1 Thema der Projektarbeit
Planung und Integration eines Deploymentsystems mit Inventarisierung auf Basis von Foreman und Puppet in die vorhandene Infrastruktur der XXXXXXX
2 Geplanter Bearbeitungszeitraum
Beginn: XXXXXXXX
Ende: XXXXXXX
3 Projektbeschreibung
Die Firma XXXXXXXX betreibt für Kundenumgebungen und interne Dienste bereits mehr als XXXX Server. Diese bestehen in vielen Fällen aus virtuellen Maschinen in einer VMware vSphere Clusterumgebung. Sie werden sowohl als Web-, File-, Datenbank- oder Application-Server genutzt.
Durch die steigende Anzahl der bereitgestellten Server und des damit verbundenen erhöhten Administrationsaufwandes, wurde geplant, ein Deploymentsystem auf Basis von Foreman und Puppet bereitzustellen. Dieses soll den Verwaltungsaufwand verringern, die Systemsicherheit stabilisieren, bei der Prozessautomatisierung unterstützen und gleichzeitig mehr Übersicht durch die Inventarisierung der Maschinen bringen.
Ist-Zustand:
Momentan wird jeder Server der Firma XXXXXXXXX manuell installiert sowie administriert. Die Bereitstellung der Server steht unter den Aspekten Funktion und Sicherheit und wird nach einer Installationsdokumentation durchgeführt, welche eine standardisierte Vorgehensweise der Kommissionierung und Installation der Systeme darstellt. Bei diesem Vorgang wird zuerst ein minimales System bereitgestellt. Weitergehende Dienste, Applikationen oder Tools werden nur bei Bedarf oder auf Wunsch des Kunden nachgepflegt. Für die meisten gebräuchlichen Dienste existieren zudem Installationsvorgaben, die ein einheitliches Setup der entsprechenden Applikationen über alle Server hinweg sicherstellen sollen.
Die manuelle Bereitstellung und Verwaltung der Maschinen unterliegt einem erheblichen und immer weiter steigenden Verwaltungsaufwand und stellt zudem mit jeder weiteren neuen Maschine eine erhöhte Fehleranfälligkeit dar.
Auf Grund dieser Gegebenheiten und der möglichen Erweiterbarkeit des Systems wurde beschlossen, die Open Source Projekte Foreman und Puppet als Inventarisierungs- sowie Deploymentsoftware der Infrastruktur zu wählen.
Soll-Zustand:
Meine Aufgabe beinhaltet die Planung und Integration des Deploymentsystems in die bestehende Infrastruktur der Firma XXXXXXXXXX, sowie die Durchführung von Tests zur Sicherstellung der fehlerfreien, automatisierten Kommissionierung und Installation der Maschinen. Um dieses Ziel zu erreichen muss die Software angemessen in die Infrastruktur integriert werden. Ebenfalls sollen Basisfunktionalitäten konfiguriert werden, um an drei verschiedenen Punkten in den Deploymentprozess eines neuen Servers eingreifen zu können.
Folgende Anforderungen werden gestellt:
Die Softwarelösung soll durch die API des VMware vCenters in der Lage sein den Deploymentprozess neuer virtueller Maschinen zu steuern. Dies beinhaltet die Erstellung und Benennung neuer Instanzen, die Zuweisung der Systemspezifikationen, sowie die Bestimmung der Netzwerkgegebenheiten wie VLAN oder vSwitches.
Foreman benutzt Puppet um Templates zur Installation oder Konfiguration neuer Maschinen oder Dienste bereitzustellen. Es soll ein Template für die Installation des Betriebssystems Ubuntu 12.04 LTS, sowie eines Apache2 Webservers analog zur Firmendokumentation erstellt und getestet werden. Durch diese Templates soll das Foreman Webinterface die Möglichkeit bieten Basiskonfigurationen wie z.B. Hostname, IP-Adresse oder auch vHost-Konfigurationen bereits vor der Kommissionierung der Maschine bestimmen zu können.
Um eine einwandfreie Netzwerkfunktionalität der virtuellen Maschinen nach der Kommissionierung sicherzustellen, sollen bei der Installation eines neuen Servers automatisch (Reverse)DNS-Einträge gesetzt werden. Diese sollen an Hand der installierten Dienste, sowie IP-Adresse bestimmt und auf BIND-DNS Servern realisiert werden.
Diese Vorgänge sollen zentral von einer Foreman Instanz angestoßen werden können. Sie werden für das Betriebssystem Ubuntu 12.04 LTS, durch die API des VMware vCenters, sowie auf den vorhandenen BIND DNS-Servern realisiert.
Das Deploymentsystem wird im Laufe der Zeit weiter ausgebaut werden. Einerseites sollen bereits vorhandene Maschinen in das System integriert werden, andererseits soll der Funktionsumfang des Systems stetig durch neue Templates erweitert werden. Server, Dienste, Konfigurationen und Templates sollen über die Weboberfläche von Foreman bereitgestellt werden.
4 Projektumfeld
Das Projekt wird bei der Firma XXXXXXXXXXX, welche sich auf hochverfügbares Managed-Hosting spezialisiert, durchgeführt. Es wird virtuell in einer VMware vSphere 5.5 Umgebung umgesetzt. Die entsprechenden Ressourcen für die benötigten virtuellen Maschinen sind bereits im Karlsruher Rechenzentrumsstandort vorhanden.
5 Projektphasen mit Zeitplanung
1. Planung (2h)
-Strukturierung der Projekt-Infrastruktur
-Serveranzahl
-Serverspezifikationen
-Distributionswahl
-Planung der Integration des Deploymentsystems in die betehende Netzwerk-Infrastruktur
2. Installation und Basiskonfiguration (2h)
-Erstellung der neuen virtuellen Maschine(n)
-Erstellung der Netzwerkinfrastruktur
-IP-Netz
-vSwitch
-Minimalinstallation des Betriebssystems, sowie Einspielung von Updates
-Konfiguration benötigter Systemdienste, sowie Installation eines Standard-Toolstacks
3. Installation und Konfiguration der Softwarelösungen Foreman und Puppet (6,5h)
-Installation der Software Foreman und Puppet, sowie dessen Abhängigkeiten (1h)
-Installation und Konfiguration der Foreman Smart Proxies für DNS und TFTP (3h)
-Integration der Softwarelösung in die VMware Infrastruktur durch die API des VMware vCenters (2,5h)
4. Konfiguration des Deploymentvorgangs (7h)
-Bereitstellung eines Templates zur automatischen Kommissionierung eines Ubuntu 12.04 LTS Servers analog zur Firmendokumentation (4h)
-Bereitstellung eines Templates zur automatischen Kommissionierung eines Webservers mit angepasster Webserver-Sicherheitskonfiguration, sowie generischem virtual Host (3h)
5. Absicherung des Gesamtsystems (1,5h)
-Konfiguration der Layer 7 Firewall
-Sicherstellung der ausschließlichen internen Erreichbarkeit der Softwarelösung
-Setzen diverser Firewallregeln um ein Deployment in alle Netze zu ermöglichen
-Definition der benötigten ein- und ausgehenden Firewallregeln direkt auf dem neu installierten System(en) durch iptables
6. Testphase und Fehlerbehebung (7h)
-Test der Weboberfläche auf einwandfreie Funktionalität (0,5h)
-Umsetzung einer fehlerfreien Deployments eines Ubuntu 12.04 LTS Servers im VMware vSphere HA-Cluster durch das erstellte Puppet-Template (2h)
-Umsetzung des fehlerfreien Deployments eines Webservers durch das erstellte Puppet-Webservertemplate (1h)
-Überprüfung der korrekten (Reverse)DNS-Funktionalitäten (0,5h)
-Fehlerbehebungen jeglicher Art/ Puffer (3h)
7. Dokumentation (9h)
(...)
8 Präsentationsmittel
Notebook, Beamer, Projektarbeit