Virtuelle Maschinen verwalten mit Vagrant

Sascha hat heute eine kurze Einführung in Vagrant gegeben. Das Tool kann virtuelle Maschinen verwalten — erstellen, starten, stoppen, löschen, etc.

Im Vortrag wurde LibVirt als Virtualisierungssoftware verwendet. Unterstützt werden aber auch viele andere wie VirtualBox, OpenStack, AWS und viele mehr. Eine nette GUI für LibVirt ist Virt-Manager. Installieren lässt sich unter Debian/Ubuntu alles mit apt install virt-manager vagrant. Danach muss Vagrant noch wissen, dass es libVirt verwenden soll, was folgener Aufruf erledigt:

export VAGRANT_DEFAULT_PROVIDER=libvirt

Eine virtuelle Maschine legt man an, indem man ein neues Verzeichnis erstellt (z.B. mit mkdir DebianBuster) und dann darin vagrant init aufruft. Es wird eine Datei Vagrantfile angelegt, die anzupassen ist. Unter https://app.vagrantup.com/boxes/search existieren bereits viele Vorlagen, aus denen man wählen kann. Wenn man als Provider libvirt auswähle und nach Buster sucht, findet man z.B. generic/debian10. Diesen Wert trägt man in dem Vagrantfile unter config.vm.box ein. Wenn man jetzt speichert und vagrant up aufruft, wird das Template von der Webseite heruntergeladen und eine neue virtuelle Maschine angelegt (ziehe Bild).

Virtuelle Maschine in VirtManager

Gültige Logindaten für die VM sind benutzername und Passwort vagrant. Man kann sich auch per ssh verbinden mit dem Kommando vagrant ssh. Anhalten lässt sich die VM mit vagrant halt und wieder löschen mit vagrant destroy.

Docker: ShareLaTeX mit TeXLive 2019

Wer sich ShareLaTex installiert stellt vielleicht fest das manche Dokumente nicht kompilieren weil nicht alle Pakete in dem offiziellen Docker Image (sharelatex/sharelatex) vorhanden sind.

Abhilfe schafft hier das Docker Image flodointhecloud/sharelatex-texlive2019. Das Dockerfile des Images nutzt das offizielle Image und ersetzt die inkludierte TexLive Distribution mit der Version 2019.

Um ShareLaTeX komfortabel mit allen Abhängigkeiten zu installieren empfiehlt es sich die offizielle docker-compose.yml Datei zu verwenden und anzupassen.

Voraussetzungen:

Folgende Softwarepakete müssen auf deinem Linux installiert sein:

Installieren:

git clone https://github.com/sharelatex/sharelatex
cd sharelatex
sed -i 's!image: sharelatex/sharelatex!image: flodointhecloud/sharelatex-texlive2019!g' docker-compose.yml
sudo docker-compose up

KubeVirt Intro – Virtualisierung in Kubernetes

Fabian Deutsch hat uns heute das Projekt KubeVirt vorgestellt. Mit KubeVirt kann man Virtuelle Maschinen in Kubernetes betreiben. Dadurch kann man Container und Virtuelle Maschinen mit dem selben Technologie-Stack (Kubernetes) zusammenführt und erleichtert sich somit die Verwaltung.

Fabian ist Entwickler im KubeVirt-Projekt und hat vor kurzem bei der FOSDEM den aktuellen Stand des Projekts vorgestellt.

 

Präsentationsfolien

Zwei-Faktor-Autentifizierung

Am 28. Januar 2018 haben wir beim LUG-Treffen das Theme Zwei-Faktor-Autentifizierung (2FA) behandelt.

Wir haben über zwei populäre 2FA-Protokolle gesprochen (TOTP und
U2F). Und dabei betrachtet welche Service und Webseiten 2FA unterstützen.
Hilfreich ist dabei die Webseite twofactorauth.org.

Auch wie man eigene Services mit 2FA absichert wurde beleuchtet.

Desweiteren haben wir über das PAM Modul „libpam-google-authenticator“ und das Open Source Projekt google-authenticator informiert.

 

Anleitung: How To Set Up Multi-Factor Authentication for SSH

Borg Backup Vortrag

Am 2. Oktober hat Moritz im Acht-Uhr-Vortrag das Backup-Programm Borg vorgestellt.

Das Programm hat viele Vorzüge und Features:

  • Deduplikation
  • Verschlüsselung
  • Geschwindigkeit
  • Komprimierung
  • Remote Backups (ssh etc.)
  • Unterstützung für RAW-Geräte
  • Backups können als Dateisystem eingebunden werden (via FUSE)
  • Einfache Installation
  • Checkpoints („resume“ möglich)

Die Präsentation wurde mit mdp gehalten ist nun als HTML verfügbar:

➡ Borg Backup Präsentationsfolien

Helfer für den LPD 2016.2 am 22. Oktober gesucht!

Die Linux User Group (LUG) Bremen übernimmt die Organisation des nächsten Linux Presentation Day in Bremen. Die Veranstaltung wird am Samstag den 22. Oktober zwischen 11:00 und 18:00 Uhr im Hackerspace Bremen stattfinden. Ansprechpartner für die Organisation ist Moritz Fiedler (Email).

Melden Dich per E-Mail oder komme beim wöchentlichen Treffen vorbei, wenn Du

  • ein erfahrener Linux-Nutzer bist und den Linux Presentation Day als Helfer unterstützen möchtest, oder
  • durch Bereitstellung Computern die Durchführung unterstützen kannst, oder
  • die Veranstaltung als Sponsor unterstützen möchtest, oder
  • über den Linux Presentation Day in Bremen berichten möchtest, oder
  • sonst noch eine geniale Idee für den Linux Präsentation Day hast.

Unsere Veranstaltungs-Webseite

Installation von Skype auf Ubuntu 16.04 Xenial (64/32bit)

Installation des Programms Skype aus dem Ubuntu Partner Repository:

Nachfolgende Kommandos sind in einem Terminal einzugeben,
jeweils ohne das führenden $ Zeichen.

$ sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install skype

Aufruf über Programm Menü oder hier direkt auf der Kommandozeile:

$ skype

Wie kommt dieses Programm auf meinem Rechner …

Manchmal sitzt man an Terminal und schaut sich mit htop die Auslastung des Rechners an. Dabei fallen einem so manche neue Programme auf die man bisher noch nicht entdeckt hat. Im nachfolgenden Fall das Programm beam.smp.

Interessant sind nun zwei Dinge, erstens was macht das Programm überhaupt und zweitens wer hat das veranlasst das dieses Programm installiert ist, dauernd läuft und damit Speicherplatz und Rechnerzeit frisst?

Ermitteln welches Debian/Ubuntu Paket das Programm installiert hat ist einfach:

# dpkg -S beam.smp
erlang-base: /usr/lib/erlang/erts-6.2/bin/beam.smp

Nun kann mit dem Paketnamen erlang-base die Paketinformation abgerufen werden.

# aptitude show erlang-base
Paket: erlang-base
Zustand: Installiert
Automatisch installiert: nein
Version: 1:17.3-dfsg-4
Priorität: optional
Bereich: interpreters
Verwalter: Debian Erlang Packagers <pkg-erlang-devel@lists.alioth.debian.org> Architektur: amd64
Unkomprimierte Größe: 13,4 M
Hängt ab von: procps, adduser, libc6 (>= 2.14), libsystemd0, libtinfo5, zlib1g (>= 1:1.2.2), init-system-helpers (>= 1.18~)
Empfiehlt: libsctp1 (>= 1.0.16+dfsg), erlang-crypto (= 1:17.3-dfsg-4), erlang-syntax-tools (= 1:17.3-dfsg-4)
Schlägt vor: erlang-tools (= 1:17.3-dfsg-4), erlang, erlang-manpages, erlang-doc
Kollidiert mit: erlang (< 1:17.3-dfsg-4), erlang (< 1:17.3-dfsg-4), erlang-base-hipe, erlang-base-hipe, erlang-doc (> 1:17.3-dfsg-999), erlang-doc (> 1:17.3-dfsg-999), erlang-doc (<
1:17.3-dfsg), erlang-doc (< 1:17.3-dfsg), erlang-doc-html (< 1:13.b.4), erlang-doc-html (< 1:13.b.4), erlang-manpages (<= 1:11.b.1-2), erlang-manpages (<= 1:11.b.1-2),
erlang-base
Ersetzt: erlang (< 1:17.3-dfsg-4), erlang (< 1:17.3-dfsg-4), erlang-base-hipe, erlang-base-hipe, erlang-dev (< 1:17.3-dfsg-4), erlang-dev (< 1:17.3-dfsg-4), erlang-doc (>
1:17.3-dfsg-999), erlang-doc (> 1:17.3-dfsg-999), erlang-doc (< 1:17.3-dfsg), erlang-doc (< 1:17.3-dfsg), erlang-doc-html (< 1:13.b.4), erlang-doc-html (< 1:13.b.4),
erlang-examples (< 1:17.3-dfsg-4), erlang-examples (< 1:17.3-dfsg-4), erlang-manpages (<= 1:11.b.1-2), erlang-manpages (<= 1:11.b.1-2), erlang-mode (< 1:12.b.1-dfsg-2),
erlang-mode (< 1:12.b.1-dfsg-2), erlang-nox (< 1:17.3-dfsg-4), erlang-nox (< 1:17.3-dfsg-4), erlang-src (< 1:17.3-dfsg-4), erlang-src (< 1:17.3-dfsg-4), erlang-x11 (<
1:17.3-dfsg-4), erlang-x11 (< 1:17.3-dfsg-4)
Liefert: erlang-abi-15.b, erlang-abi-17.0
Beschreibung: Virtuelle Maschine für Erlang/OTP und Basisanwendungen
Dieses Paket enthält eine Erlang/OTP-Laufzeitumgebung. Sie wurde ohne HiPE-Unterstützung konfiguriert und erstellt (sie kompiliert nur zu Byte-Code). Das Paket enthält ferner einen
minimalen Satz an Erlang-Anwendungen:
compiler - kompiliert Erlang-Quelltexte zu Byte-Code;
erts - die Erlang-Laufzeitsystemanwendung;
kernel - Programm-Code zum Starten des Erlang-Laufzeitsystems;
ose - Code für das Betriebssystems Enea OSE;
sasl - die Systemarchitektur unterstützende Bibliotheksanwendung;
stdlib - Module zur Änderung von Listen, Zeichenketten, Dateien, usw.
Homepage: http://www.erlang.org/

Markierungen: devel::interpreter, role::program, uitoolkit::nurses

Über den Sinn dieses Paket sagt das leider noch nichts aus. Eine Auskunft über das Mutterpaket liefert aber folgendes.

aptitude show erlang
Paket: erlang
Zustand: nicht installiert
Version: 1:17.3-dfsg-4
Priorität: optional
Bereich: interpreters
Verwalter: Debian Erlang Packagers <pkg-erlang-devel@lists.alioth.debian.org> Architektur: all
Unkomprimierte Größe: 51,2 k
Hängt ab von: erlang-base | erlang-base-hipe, erlang-dev, erlang-asn1, erlang-common-test, erlang-corba, erlang-crypto, erlang-debugger, erlang-dialyzer, erlang-diameter, erlang-edoc,
erlang-eldap, erlang-erl-docgen, erlang-et, erlang-eunit, erlang-gs, erlang-ic, erlang-inets, erlang-megaco, erlang-mnesia, erlang-observer, erlang-odbc, erlang-os-mon,
erlang-parsetools, erlang-percept, erlang-public-key, erlang-reltool, erlang-runtime-tools, erlang-snmp, erlang-ssh, erlang-ssl, erlang-syntax-tools, erlang-test-server,
erlang-tools, erlang-typer, erlang-webtool, erlang-wx, erlang-xmerl
Empfiehlt: erlang-jinterface, erlang-ic-java, erlang-mode, erlang-src, erlang-examples
Schlägt vor: erlang-manpages, erlang-doc
Beschreibung: Simultane, verteilte und funktionelle Echtzeitsprache
Die quelloffene, funktionale Programmiersprache Erlang wurde am Ericsson Computer Science Laboratory konzipiert.

Einige der Hauptmöglichkeiten von Erlang sind:
* Klare, deklaratorische Syntax und weitgehend frei von Nebeneffekten;
* Eingebaute Unterstützung für Echtzeit-, simultane und verteilte Programmierung;
* Für die Entwicklung von robusten und fortlaufend verarbeiteten Programmen konzipiert;
* Dynamische Ersetzung von Code zur Laufzeit.

Die Erlang-Veröffentlichung enthält auch OTP (Open Telecom Platform), das einen reichen Satz an Bibliotheken und Anwendungen liefert.

Dieses Pseudopaket installiert Laufzeit, Anwendungen, Quelltext und Code-Beispiele für Erlang/OTP sowie den Erlang-Bearbeitungsmodus für Emacs.
Homepage: http://www.erlang.org/

Markierungen: devel::TODO, devel::interpreter

Nun Gut, es handelt sich also um einen sicheren Interpreter für etwas das fortlaufend arbeiten soll. Das Was? und Warum? bleiben hier aber immer noch unbeantwortet.

Ermitteln wir mal warum dieses Paket eigentlich installiert wurde.

# aptitude why erlang-base
i cinnamon-core Hängt ab von cinnamon (>= 2.2)
i A cinnamon Hängt ab von libjs-jquery
i A libjs-jquery Empfiehlt javascript-common
i A javascript-common Schlägt vor apache2 (>= 2.4.6~) | lighttpd | httpd
i A yaws Liefert httpd
i A yaws Hängt ab von erlang-yaws (>= 1.98-4)
i A erlang-yaws Hängt ab von erlang-base (>= 1:17.1-dfsg) | erlang-base-hipe (>= 1:17.1-dfsg)

Ah, das sind die richtigen Hinweise, es handelt sich um ein Paket das vom cinnamon-core dem Desktop Manager, über die libjs-jquery, javascript-common und schliesslich als httpd (Webserver) in Form von yaws installiert worden. Wie angezeigt, täten es genauso gut apache2, lighttpd oder httpd. Hier wurde bei der Installation automatisch yaws ausgewählt, da der Dienst vielleicht besonders klein und Resources sparend oder wie oben erwähnt besonders sicher ist. Oder was auch immer …

Ein nahtloser Austausch der httpd Funktionalität wird mit dem Kommando:

# aptitude install lighttpd yaws-

erreicht.

Das besondere daran ist das nachfolgende – Minuszeichen hinter dem zu ersetzenden Paketnamen. Es ist damit der Neuinstallation des Paketes lighttpd nicht im Weg und es wird trotzdem eine komplette Deinstallation von allen abhängigen Paketen vermieden. Wäre das im diesen Fall erfolgt, hätte das den Desktop Manager (cinnamon-core) betroffen, was nahezu erstmal das halbe System deinstallieren hätte.

Das das Paket aber nur empfohlen wird, kann es potentiell auch entfernt werden hier würde ein

# aptitude remove javascript-common

die Sache bei der Wurzel packen und das System davon maximal befreien.

CentOS Admin Commands

Verifikation aller installierten RPM Pakete

  • rpm -V $(rpm -q -a)
S.5....T.  c /etc/bareos/bat.conf
S.5....T.    /usr/share/pear/.depdb
.......T.    /usr/share/pear/.depdblock
S.5....T.    /usr/share/pear/.filemap
.......T.    /usr/share/pear/.lock
S.5....T.  c /etc/yum/pluginconf.d/versionlock.list
prelink: /usr/bin/gnome-control-center: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/gnome-control-center
.M....G..    /var/log/gdm
.M.......    /var/run/gdm
fehlend     /var/run/gdm/greeter
.M.......    /usr/bin/amd-console-helper
prelink: /usr/lib64/fglrx/fglrx-libGL.so.1.2: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/fglrx/fglrx-libGL.so.1.2
prelink: /usr/lib64/libatiuki.so.1.0: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/libatiuki.so.1.0
S.5....T.  c /etc/maven/maven2-depmap.xml
S.5....T.  c /etc/ssh/ssh_config
..5....T.  c /usr/lib64/security/classpath.security
S.5....T.  c /etc/rsyslog.conf
S.5....T.  c /etc/vdsm/vdsm.conf
S.5....T.  c /etc/sysconfig/nfs
S.5....T.  c /var/lib/nfs/etab
S.5....T.  c /var/lib/nfs/rmtab
S.5....T.    /sbin/rmt
S.5....T.  c /etc/bareos/bareos-sd.conf
.M.......    /var/lib/bareos/storage
prelink: /usr/bin/csslint-0.6: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/csslint-0.6
....L....  c /etc/pam.d/fingerprint-auth
....L....  c /etc/pam.d/password-auth
....L....  c /etc/pam.d/smartcard-auth
....L....  c /etc/pam.d/system-auth
S.5....T.  c /etc/bareos/bareos-dir.d/webui-consoles.conf
.......T.  c /etc/bareos/bareos-dir.d/webui-profiles.conf
S.5....T.  c /etc/bareos/bconsole.conf
.......T.  c /etc/xinetd.d/rsync
S.5....T.  c /etc/bareos/bareos-fd.conf
prelink: /usr/bin/rsvg-convert: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/rsvg-convert
prelink: /usr/bin/rsvg-view: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/rsvg-view
prelink: /usr/lib64/libm17n.so.0.3.0: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/libm17n.so.0.3.0
..5....T.  c /etc/inittab
..5....T.  c /etc/sysctl.conf
.......T.  c /etc/dnsmasq.conf
S.5....T.  c /etc/sudoers
S.5....T.  c /etc/hosts.allow
S.5....T.  c /etc/hosts.deny
S.5....T.  c /etc/printcap
prelink: /usr/bin/gnome-system-monitor: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/gnome-system-monitor
S.5....T.  c /etc/virt-v2v.conf
S.5....T.  c /etc/libvirt/libvirtd.conf
S.5....T.  c /etc/libvirt/qemu.conf
S.5....T.  c /etc/logrotate.d/libvirtd
S.5....T.  c /etc/sysconfig/libvirtd
.M.......    /var/cache/libvirt/qemu
S.5....T.  c /etc/libvirt/qemu-sanlock.conf
.M....G..    /var/lib/libvirt/sanlock
.M.......  c /etc/cups/subscriptions.conf
prelink: /usr/lib64/gimp/2.0/plug-ins/file-svg: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/gimp/2.0/plug-ins/file-svg
S.5....T.  c /etc/sysconfig/cpuspeed
S.5....T.  c /etc/bareos/bareos-dir.conf
prelink: /usr/libexec/ibus-engine-m17n: at least one of file's dependencies has changed since prelinking
S.?......    /usr/libexec/ibus-engine-m17n
S.5....T.  c /etc/login.defs
S.5....T.  c /etc/openldap/ldap.conf
S.5....T.  c /etc/pam_ldap.conf
.......T.    /etc/dhcp/dhclient.d/nis.sh
S.5....T.  c /etc/httpd/conf.d/ssl.conf
S.5....T.  c /etc/yum.repos.d/epel.repo