+
+
Docker ist bereits seit einigen Jahren besonders im Hosting- und Providerumfeld eine beliebte und zum Teil auch gesetzte Möglichkeit, Applikationen in Containern abzubilden um diese bedarfsgerecht auszurollen.
In meinem Tutorial möchte ich die Bereitstellung von Docker mittels CoreOS unter XenServer 7.0 beschreiben.
Installation Container Management Supplemental Pack für XenServer 7.0
Es wird ein Citrix Account benötigt: Klick
Anschließend die ISO auf den XenServer kopieren und per SSH und root auf dem XenServer einloggen. Ich nutzte dazu Mobbaxterm.
Alternativ kann auch Putty und WinSCP verwendet werden.
Für die Installation des Supplemental Packs gibt es 2 Varianten. Ich bevorzuge es die ISO zu mounten und die Installation auszuführen.
mkdir /tmp/iso mount -o loop XenServer-7.0.0-xscontainer.iso /tmp/iso cd /tmp/iso ./install.sh cd umount /tmp/iso
Alternativ per xe Befehlt
xe-install-supplemental-pack XenServer-7.0.0-xscontainer.iso
Die wenn die Installation abgeschlossen ist, empfehle ich einen Reboot bzw. einen Toolstack Restart über das XenCenter.
Anschließend wird CoreOS bereitgestellt. CoreOS ist eine Art Träger-Plattform für Docker Container. Man kann auch Ubuntu oder CentOS nutzen. Auch Windows Server 2012r2 ist in der Lage Container anzubieten.
Installation CoreOS für Docker Intigration XenServer 7.0
CoreOS ist sehr schlank und schnell installiert.
ISO Beschaffen: Klick
Neue XenServer VM anlegen.
Bis hier hin recht einfach. Jetzt müssen wir CoreOS mitteilen wer sich per SSH einloggen darf. Das wird nicht wie gewöhnlich per Username / Passwort gelöst, sondern über einen SSH-Key. Dieser wird CoreOS mitgeteilt und auch im Putty / MobbaXterm hinterlegt.
Die gelbe Markierung zeigt die Stelle, an der der SSH Key stehen muss.
Erzeugen SSH Key und Einbindung CoreOS und MobaXterm
(die Anleitung kann auch für Putty verwendet werden.)
In MobaXterm gibt es dafür einen SSHKey Creator Tool
Der Generierte Key kann dann per File > Save Private Key als Datei abgelegt werden. Idealerweise in einem Verzeichnis wo er mit gesichert wird. Ich habe auch ein Passwort eingetragen. Dann ist die Verwendung des KEYs nochmal mit einem Passwort abgesichert, welches beim Verbinden zum CoreOS abgefragt wird.
Wenn wir die Schlüsseldatei per Editor öffnen, sehen wir die Unterteilung in PublicKey und PrivateKey. Der PublicKey wird im XenCenter in den CoreOS CloudConfig Parametern eingetragen. Die Cloudconfigparameter beinhalten die Konfiguration von CoreOS und werden beim Boot als Laufwerk mitgegeben.
Die Gelb Markierten Zeilen werden eingetragen.
ich hatte den Effekt, dass nach dem Speichern der Key sauber auf eine Zeile konfiguriert wurde. Es ist jedoch schon vorgekommen, das er den Key mit Zeilensprüngen eingefügt hat, was dann am Ende nicht funktionierte. Deswegen zieht am besten händisch die 6 Zeilen zu einer langen Zeile zusammen. (am Zeilenanfang einmal Backspace zieht die Zeile ans Ende der darüber befindlichen Zeile.
Anschließend bootet CoreOS mit DHCP. Schaut welche IP Adresse es bekommen hat. Über die XenCenter Konsole muss man sich nicht anmelden. CoreOS startet bereits vorangemeldet. Der User ist “core”
Im Putty / MobaXterm dann eine neue Verbindung konfigurieren und als Parameter den SSHKey mitgeben.
Der Login sollte nurnoch das SSHKey-Passwort abfragen, oder wenn ihr beim Erzeugen keins eingetragen habt, direkt durchlaufen.
CoreOS ist fast fertig. Es handelt sich bei der ISO um eine LIVE-ISO. Das bedeutet, das man das Betriebssystem noch auf die Disk Schreiben muss.
sudo coreos-install -d /dev/xvda
Wenn die Installation abgeschlossen ist, kann die CoreOS ISO entfernt werden und das System einmal Rebooten.
Die Containerverwaltung im XenCenter für die VM aktivieren.
Anschließend können Docker Container eingebunden werden.
Beispielcontainer MariaDB und WordPress
docker pull mariadb docker pull wordpress
docker run -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress --name wordpressdb -v "$PWD/database":/var/lib/mysql -d mariadb:latest
docker run -e WORDPRESS_DB_PASSWORD=password --name wordpress --link wordpressdb:mysql -p 192.168.xxx.xxx:80:80 -v "$PWD/html":/var/www/html -d wordpress
docker ps -a
Im XenCenter sollten nach einigen Sekunden auch die Container angezeigt werden.
Das war es schon, danke fürs Lesen!
Christian
Hallo, vielen Dank für den Artikel. Bei uns klappt es mit CoreOS 4.7.0 nicht. Nach der Installation kommt im XenCenter 7 kommt die Meldung: “Container Management cannot monitor VM”. Die IP kann nicht ermittelt werden. Haben versucht die Guest-Tools manuell zu installieren, leider ohne Erfolg. Ist das ein bekanntes Problem? Ideen?
Danke!
Scheint ein bekanntes Problem zu sein: https://github.com/coreos/bugs/issues/1563
Hi Ole, sorry das ich verzögert antworte, ich war letzte Woche offline.
Wenn es sich um ein Problem mit CoreOS handelt, kannst du auch auf ein anderes “Träger-System” für Docker zurückgreifen. zB. CentOS > Docker unter CentOS
Ansonsten gibt es mittlerweile auch ein paar Updates für XenServer 7.0 > Klick – Citrix Support
Viele Grüße
Christian
Hallo, vielen Dank für die Rückmeldung. Mit einer älteren CoreOS Version funktioniert es einwandfrei. Nachdem das automatische Update vom CoreOS deaktiviert ist, funktioniert es sogar länger als einen Tag 😀
Die Updates sind bei uns bereits alle eingespielt.
Wir haben im Vorfeld bereits alternative Träger-Systeme probiert, jedoch nie die Integration im XenCenter gehabt. Gibt es hierzu auch eine Doku (z.B. Debian, Ubuntuserver oder CentOS)?
Danke und Grüße, Ole
Hi, ich glaube Citrix hat bislang nur CoreOS eingebaut, und Server 2016.
Falls dich das interessiert, schau mal hier. Die Windows Server 2016 NANO-Server Variante ist dabei recht interessant. Dazu werde ich sicherlich auch einen Blog-Beitrag verfassen.
https://www.citrix.com/blogs/2016/05/26/using-windows-server-containers-with-xenserver-7-0/
Hallo, vielen Dank für den Artikel. Ich verlor alle Daten, wenn ich das System neu starten
Ideen?
Danke!
Hi Smimite,
hast du das System installiert? Also vor der ersten Konfiguration muss das Live System noch auf die Disk geschrieben werden. Hatte ich recht weit unten auch beschrieben.
“CoreOS ist fast fertig. Es handelt sich bei der ISO um eine LIVE-ISO. Das bedeutet, das man das Betriebssystem noch auf die Disk Schreiben muss.”
sudo coreos-install -d /dev/xvda1
hi
when a i try to connect to coreos via MobaXterm and ssh key
i got this error :
server refused our key using keyboard-interactive authentication
sorry for disturb
Thank you!
Hi, look if this help´s >
CORE OS Solution:
If using coreos set the username ‘core’ instead of ‘root’.
Once you’ve logged in you can use ‘sudo -i’ to become root.
https://www.digitalocean.com/community/questions/putty-ssh-server-refused-our-key
Yo digger,
da ist ein kleines Problem in der Reihenfolge der Arbeitsschritte. Wenn man nämlich vor dem Installieren probiert per SSH auf CoreOS zuzugreifen um dann per SSH die installation durchzuführen, hat man permanent Probleme, dass der Key nicht akzeptiert wird. Nach ewigem herumprobieren habe ich einfach über die Console des XenCenters coreos installiert.
Und schwupps konnte man sich nach dem Reboot ohne Probleme einloggen per SSH