Archiv der Kategorie: DevOps Tutorials

Tutorials for DevOps & Scripting Deploying and Technical contribution for Professionals

Docker DevOps Continuous Delivery

Docker im DevOps und Continuous Delivery Umfeld wird ein zunehmend wichtiger Bestandteil. Docker ist eine Virtualisierungslösung, die ohne Hypervisor auskommt, es wird Operating-system-level Virtualization mit Linux-Containern verwendet. Im Backend verlässt Docker sich ausschließlich auf LXC. Diese Container sind unabhängig voneinander, aber verwenden Teile des Linux-Kernels als Abstraktion gemeinsam. Dadurch ist die Effizienz wesentlich höher als bei anderen Virtualisierungslösungen.

Auf Operating-system-level Virtualization basierende Lösungen sind die bekanntesten Vertreter dieser Technik die Linux-Container. Dabei ist Docker weit verbreitet. Docker konkurriert mit dem auf App Container (appc) basierendem Rocket (rkt). Die Open Container Initiative (OCI) strebt eine Vereinheitlichung und gemeinsame Standards für Container-Formate und Container-Laufzeitumgebungen an.

Das Docker Prinzip

Nicht wie Hypervisoren zur Virtualisierung bietet Docker keine vollständige Virtualisierung von virtuellen Maschinen, vielmehr handelt es sich um Linux-Container (LXC oder Libcontainer, und chroot, Namespaces, Cgroups). Diese Container sind unabhängig voneinander, aber verwenden Teile des Linux-Kernels gemeinsam. Dadurch ist die Effizienz wesentlich höher als bei anderen Virtualisierungslösungen. Auf einer Hardware können wesentlich mehr Docker-Container betrieben werden als VMs.

Diagramm: Virtual Machines und Containers

Als Hypervisor basierte Lösung war Docker bis April 2016 auf Linux Host Systeme angewiesen. Auf Windows und Mac OS X konnte es nur mit einem zusätzlichen Linux-Layer installiert werden, beispielsweise über Docker Toolbox (beinhaltet Boot2Docker und Oracle VirtualBox). Ähnliches gilt für das Gast-Betriebssystem wo nur Linux möglich ist. Der Gast verwendet den Linux-Kernel des Host Systems.

Seit April 2016 gibt es Beta-Versionen von Docker for Mac and Docker for Windows, die als native Anwendungen laufen und ohne VirtualBox auskommen. Die Docker-Engine läuft unter einem Alpine-Linux auf einer virtuellen Maschine (Hyper-V bei Windows und xhyve in OS X).

Die Docker Machine

Die Boot2docker Machine unter Windows 10 wird als Virtuelle Linux Machine in VirtualBox ausgeführt. DevOps die beim deployen mit ESXi Hypervisoren arbeiten, benutzen oft die VMware Workstation, diese performanter ist als die VirtualBox, bevor die VMware Workstation aber genutzt werden kann, wird der Treiber von pecigonzalo benötigt, die Treiberdatei Docker Machine VMware Workstation Driver wird in das Programm Verzeichnis, Docker Toolbox kopiert.

  Docker Machine VMware Workstation Driver

Dieses Plugin für Docker Machine erstellt Docker-Hosts lokal auf einer VMware Workstation.

Abbildung: boot2docker shell

Docker – Up and Running: von Karl Matthias bei O’REILLY

 

KiTTY Terminal Scripting

PuTTY oder doch KiTTY

KiTTY ist ein Telnet- und SSH-Terminal Emulator für Windows. Die Software ist eine Alternative zu PuTTY und wurde als PuTTY-Clone/Fork entwickelt und ist auch als portable Version erhältlich. Des weiteren werden Raw, Rlogin, ADB, Cygterm und Serial Terminal ermöglicht. KiTTY ist im selben unauffälligen lock and feel gehalten wie PuTTY, bietet jedoch einige nützliche Erweiterungen.

KiTTY Icon

Ein Feature von KiTTY ist der integrierte Editor, mit diesem beim entwickeln und Testen von Scripts die Arbeit im Terminal erleichtert wird, mit <Shift+F2> ruft man den Editor auf.

Feature von KiTTY ist der integrierte Editor
KiTTY Terminal mit mNotepad (Shift+F2) Editor

Die Code Zeilen aus dem mNotepad können zeilenweise oder als markierten Bereich mit der Option Send (F12) zum Terminal gesendet werden. Das Testen von Code Snippets in der Linux Shell kann so schnell und einfach ausgeführt werden.

Mit <Ctrl+Rechte Maustaste> erscheint das Kontext Menu mit den Optionen, so können Scripte über Send script file übertragen werden die im Terminal Shell ausgeführt werden. Die Option User Command bietet die Möglichkeit häufig verwendete Befehle auszuführen, die in der Registry gespeichert werden.

KiTTY Kontext Menu
WinSCP

Falls vorhanden kann WinSCP aufgerufen werden, es wird direkt eine Verbindung zum Host aufgebaut, oder man wählt die Dateiübertragung über Send with pscp.

Wer die Sessions und Hosts Parameter nicht in der Registry verwalten möchte, dem bietet sich die Möglichkeit die Einstellungen in der INI Datei zu speichern. Dabei muss folgender Eintrag in kitty.ini eingefügt werden.

[KiTTY]
savemode=dir

Mit folgender Eingabe in der Eingabeaufforderung für die Verwaltung ohne Registry:

kitty.exe -convert-dir

Hierdurch werden unter dem Programm Ordner 6 Unterordner angelegt, die Einstellungen werden in den Ordnern Commands, Folders, Launcher, Sessions, Sessions_Commands und SSHHostKeys abgelegt.