Rechner von der Hardware zu virtuellen Maschinen umzufunktionieren ist ja mittlerweile eine ziemlich langweilige Aufgabe geworden. Wenn man das ganze allerdings anders herum probiert, dann braucht man zwar keine riesen Hilfsmittel, aber ein wenig Umdenken ist schon gefragt.
In diesem Beitrag beschreibe ich, kurz und knapp, wie man aus einem eine Festplatte über das Netzwerk auf eine andere (auch gern ein Imagefile) clont.
Genutzt wird dd. Mit Hilfe von dd kann man einen Datenstrom von Blockdevices abgreifen und zum Beispiel in einer Datei speichern. Da es auf diesem Weg funktioniert, funktioniert es auch im Netzwerk mit Hilfe von SSH ziemlich einfach.
Wir greifen einfach die Daten von der Festplatte/dem Image ab
dd if=/mnt/storage/vm1234.raw
und geben es mit einer Pipe an SSH weiter
| ssh root@111.222.333.444
wo wir es dann an die entgültige Stelle bewegen:
dd of=/dev/sda
Vollständig sieht das dann so aus:
dd if=/mnt/storage/vm1234.raw | ssh root@111.222.333.444 dd of=/dev/sda
Auf diesem Weg kann man dann ziemlich einfach die Daten einer Festplatte/eines Images durch das Netz an einen anderen Ort bewegen, um dort dann zum Beispiel seinen neuen Rechner in Betrieb zu nehmen.
Geholfen hat:
Das Ansible für mich der logische nächste schritt nach der Shell ist, sobald es um die Verwaltung von Servern geht, habe ich vielleicht hier und da schon mal durchblicken lassen. Der Hintergrund ist einfach:
Mit Ansible Playbooks habe ich als Systemverwalter die Möglichkeit meine Schritte in einfacher Art und Weise (fast schon stenografisch) nieder zuschreiben und so einen Ablauf zu skizzieren, welche Arbeiten/Schritte/Rahmenbedingungen auf dem von mir zu verwaltenden System durchgeführt/vorhanden sein sollen.
Ansible selbst kümmert sich dann um die Abstraktion zum System hin, auf dem ich dann letztendlich die Skizze ausführe.
Wenn ich nun eine gewachsene Landschaft mit unterschiedlichen Linux-Distributionen habe, kann Ansible mir helfen diese aktuell zu halten. Das einfache Playbook dazu sieht wie folgt aus:
--- - hosts: all:!switche:!windows user: root gather_facts: true tasks: - name: apt update action: apt update_cache=yes when: ansible_distribution == "Ubuntu" or ansible_distribution == "Debian" - name: apt upgrade action: apt upgrade=dist force=yes when: ansible_distribution == "Ubuntu" or ansible_distribution == "Debian" - name: yum upgrade action: yum name=* state=latest when: ansible_distribution == "CentOS" - name: dnf upgrade action: yum name=* state=latest when: ansible_distribution == "Fedora"
Wenn ich dieses Playbook nun auf meine Landschaft loslasse:
ansible-playbook playbooks/linux-upgrade.yml
spielt es keine Rolle mehr, ob die Eingesetzte Distribution ein Debian, Ubuntu, Fedora oder CentOS ist. Alle werden mit den eigenen Paketmanagern aktualisiert
Eine Webseite zu erhalten, diese mit Inhalten zu füllen und einen Haufen Schabernack damit zu treiben ist heute kein Hexenwerk mehr - und ist es schon seit langem nicht.
Ganze Berufsgruppen und Zweige haben sich aufgetan und beraten alle die es wollen (und auch die, die es nicht wollen) in allen möglichen belangen.
So richtig verändert hat sie die Funktion des Internets allerdings dadurch nicht. Nur die Geschwindigkeit (sowohl in der Bandbreite, als auch in der Rechenleistung und dem publizieren von Inhalten) ist wohl definitiv eine andere. Durch die Verbreitung der Wunderwerke CMS (Content Management Systeme) ist es möglich den Inhalt einer Webseite von dem Layout zu trennen. Unzählige Lösungen gibt es. Eine mächtiger als die andere.
Durch meiner Arbeit im Bereich der Medienberatung, als Administrator und natürlich auch Technik interessierter habe ich die unterschiedlichsten Lösungen kennengelernt oder gebaut. Im laufe der Jahre bekommt man es mit vielen vermeintlichen Notwendigkeiten zu tun, Wünsche müssen am besten gestern realisiert werden und sogar Designer, Suchmaschinenoptimierer, Redakteure und was nicht noch alles für Menschen sind beim Aufbau einer Webseite involviert.
Im laufe der Jahre hat sich aber auch das Bewusstsein bei mir entwickelt, dass sich ganz schön in die Tasche geschummelt wird, was die Notwendigkeit, aber auch die Folgen bei diesem Vorgehen sind. Nicht selten habe ich Kunden erlebt, welche mit veralteten Versionen zu kämpfen hatten, auf den ehemaligen Betreuer geschimpft wurde, weil dieser nicht korrekt aufgeklärt hat oder schlimmer noch, viel Geld ausgegeben wurde und dann nicht das gewünschte (oder passende) Ergebnis dabei herum kam.
Ironischer weise sehen das wohl auch einige erfahrene (und wahrlich kompetente) Entwickler so. Gradezu lächerlich sind manchmal die Vorstellungen von Zeit, Geld und Energie wenn es um den Aufbau einer ansehnlichen, möglichst wartungsfreien Webseite geht. Es scheint allerdings hier schlicht ein Generationskonflikt vorhanden zu sein - sie wissen es halt nicht besser die jungen Dinger :).
OK, worum geht es hier? Ich stehe total auf Vereinfachung. Nicht immer ist das was geht auch das was sein muss. Erst recht, wenn es um die Zeit und Energie anderer Menschen geht. Das trifft auf bei der Verwendung der Werkzeuge zu.
FlatFile CMS ist das, was mich in den letzten Jahren dazu gebracht hat wieder freudig an Aufträge zu gehen die mit dem Aufbau von Webseiten zu tun hatten. Es handelt sich dabei um CMS ohne Datenbank (wie diesem Blog hier). Das macht alles viel leichter, transportabler und wie ich meine Ressourcenschonender. Zumal der einfachste Webspace genutzt werden kann. Auch Backups gehen leichter von der Hand. Cool ist in aller Regel auch die Anpassung/der Aufbau von Templates. Wer sich einmal den Unsinn bei Wordpress angeschaut hat, wird grade lachend am Boden liegen, wenn er verstanden hat, dass ein neues Thema mit bet-simple (zum Beispiel) in Gardenia 20 Minuten eingesetzt werden könnte (je nach Bedarf versteht sich).
Eine tolle Liste dieser grandiosen Entwicklungen finden sich unter dem nachfolgenden Link. Ich selbst kann jedem kleinen bis mittleren Projekt nur mal dazu raten sich dort mal zusehen. Backups via einfachem FTP Download, kleine Datenmengen, Erweiterbarkeit durch Plugins und vor allem Kommunizierbarkeit in Richtung des Kunden runden für mich die Sache ab