Kategori Ubuntu

Einführung in Docker

Freitag, August 25th, 2017

Hier eine Kurzzusammenfassung wie man mit Docker sein erstes Projekt starten kann und worauf man achten sollte.

Installation:
Die Installation ist mittlerweile trivila einfach:

Wenn man docker als System Benutzer ausführen möchte. muss dieser in der Gruppe docker sein.

Das Dockerfile:
Das Dockerfile beschreibt was gemacht werden soll. Fangen wir langsam an und setzen eine Instanz mit einem Webserver mit PHP Unterstützung auf:

Im Detail: Die „FROM“ Zeile beschreibt das zugrunde liegende Image. In unserem fall ist das Ubuntu in der Version 14:04. Die liste der Images findet man hier: hub.docker.com

Die Zeile RUN beschreibt was beim Prozesse des bauen eines Docker Container gemacht werden soll. An dieser stelle habe ich alle apt befehle hintereinander geschrieben, da Docker für jedes einen eigenen Layer erzeugt. Dies hat vor und Nachteile.

Dann starten wird das ganze doch mal:

Mit „docker build“ wird das Image gebaut. Mit der Option -t geben wird dem ganzen noch einen beliebigen Namen und der Punkt besagt das das Dockerfile aus dem aktuellen Verzeichnis verwendet werden soll.

Nach dem Bauen können wir den Container Starten. Zunächst habe ich mit der Option „-v“ das Verzeichnis in dem wir uns gerade befinden im den Container an die Stelle /var/www/html gemountet. Mit der Option -i und -t mit dem bekommen wir im zusammen Spiel mit dem abschließenden Aufruf von /bin/bash einen Interaktiven zugriff auf den Container. Die „–rm“ Option löscht nach beenden der Interaktiven Shell auch den gesamten Container. Dies würde Docker sonst nicht machen und es würde sehr viel Datenmüll entstehen. Da wir dem ganzen einen Namen gegeben haben müssen wir nicht umständlich nach nach der beim Bauen des Container erzeugten ID suchen sondern könne einfach loslegen:

In diesem Container ist nun noch nichts gestartet. Nach dem Starten des Webservers mittels /etc/init.d/apache2 start kann mit einem Webbrowser die Seite angezeigt werden. Hierfür sucht man sich die Aktuelle IP herraus: ip a und gibt diese im Webbrowser an.

MySQL Passwort reset

Dienstag, Juli 18th, 2017

immer wieder toll, dass sich im laufe eines Produkt zyklusses das zurücksetzen eines Passwort immer wieder ändere muss. Hier das Beispiel wie es unter Ubuntu 16.04 noch funktioniert:

Zunächst um welche Version handelt es sich:
mysql --version
mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper

Dann muss die Datenbank angehalten werden:
systemctl stop mysql

Unter Ubuntu existiert der /var/run/mysqld Ordner nicht der für das Starten des mysql Prozesses ohne Berechtigungen nötig ist:
mkdir /var/run/mysqld
chwon mysql: /var/run/mysqld
mysqld_safe --skip-grant-tables --skip-networking &

Dann kann man sich in die DB einloggen und das Passwort zurück setzen:
mysql -u root
use mysql;
UPDATE user SET authentication_string = PASSWORD('neues_passwort') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

Zum Schluss muss der mysql Prozess wieder beendet werden und der ganz normale Dienst kann wieder gestartet werden:
kill `cat /var/run/mysqld/mysqld.pid`
systemctl start mysql

cisco: kex: algorithm: diffie-hellman-group1-sha1

Donnerstag, Dezember 1st, 2016

Auf unsere CISCO 4500 haben wir ein ios mit SSH. Leider ist das aber eine SSH die schon etwas in die Jahre gekommen ist. Somit meckert meine SSH unter Ubuntu 16.04 das die Ciphers (Verschlüsselungsverfahren) nicht erlaubt sind.

ssh admin@switch
Unable to negotiate with switch port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

Dies kann man zum Glück noch explizit aktivieren:
ssh admin@switch -oKexAlgorithms=+diffie-hellman-group1-sha1
Password:
Switch>

Damit ich zukünftig dies nicht immer wieder hier nachlesen muss. Habe ich dies in meine .ssh/config dauerhaft verdrahtet.

Host switch
KexAlgorithms=+diffie-hellman-group1-sha1


Die beiden Cisco 4500 kurz nach dem Einbau.

mount cifs als guest: mount error(13): Permission denied

Sonntag, September 4th, 2016

Beim mounten eines NFS unter Ubuntu 16.04 mit folgenden Kommando bekam ich immer eine Fehlermeldung die leider sehr häufig vor kommt.

Durch das einfügen von User und Passwort war das mounten möglich:

drbd: storage live migration

Montag, August 1st, 2016

Um VMs zwischen HDD und SSD zu migrieren wäre ein „lvmove“ äquivalent ganz praktisch. Dies kann es aber nicht geben, da der Pfad zum lv dann auch angepasst werden muss. Um meine Master Slave Setup dennoch Live migrieren zu können, habe ich ein neues gleich großes lv erstellt, die Platte ausgehangen und die neue wie folgt eingegangen.

Zunächst habe ich geprüft ob ich Master oder Slave bin (ro:Secondary)

Dann habe ich dem DRBD Verbund die Storage aus gehangen:

Dies DRBD Config Datei editiert und bei der localen node das neue lv auf der neuen vg eingetragen.

Danach muss das neue lv von DRBD initialisiert werden:

Anschließend wird alles wieder gestartet und die Synchronisation begibt automatisch.