Kein Netzwerk für KVM Gäste

Wenn KVM-Gäste plötzlich kein Netzwerk mehr haben, obwohl ihr auf dem Host nichts geändert habt und Fehlermeldungen im Gast wie

  • no dhcpoffers received
  • /var/lib/dhcp/dhclient leases empty
  • dhclient leases too old
  • ip shows no address
  • DHCPDISCOVER on ens3
  • No working leases in persistent database – sleeping.
  • Failed to get interface index: No such device

erscheinen, dann kann das daran liegen, dass ihr docker.io in Bionic Beaver installiert habt. Dies aktiviert stillschweigend br_netfilter. Deaktiviert man den Docker-Dienst, bleibt das Netfilter Modul selbstverständlich geladen.

Ein Logeintrag auf dem KVM-Host könnte so aussehen:

Nov 10 17:18:15 cd kernel:  logdrop IN=br0 OUT=br0 PHYSIN=vnet2 PHYSOUT=enp0s31f6 MAC=00:0d:b9:34:29:b8:52:54:00:3e:12:ee:08:00 SRC=192.168.10.136 DST=217.11.52.142 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=27193 DF PROTO=TCP SPT=49861 DPT=443 WINDOW=64240 RES=0x00 SYN URGP=0 

217.11.52.142 ist übrigens der Shopblogger.

Yaml mode

Mit dem yaml-mode, den es auch als Debian Paket gibt, ist das Bearbeiten dieses eigenartigen Formats doch wesentlich einfacher und der Fehler

ERROR: yaml.scanner.ScannerError: while scanning for the next token
found character ‘\t’ that cannot start any token
in “./docker-compose.yml”, line 10, column 1

erscheint nicht mehr.

Unix Sticker

Mich wundert es ja noch immer, dass Arch Linux dabei war. Das, vim und Go verwende ich nicht. Aber die anderen Sticker habe ich natürlich aufgeklebt:

Noch mehr Sticker gibt es im Propack bei Stickermule. Das ist allerdings auch deutlich teurer.

Pound SSL: Too many Redirects after switching to https

Bei Uberspace (6) lässt sich Let’s Encrypt mit nur vier Konfigurationszeilen einrichten! Das geht schnell und problemlos. Bei Uberspace 7 sogar automatisch!

Nicht auf Anhieb funktioniert hat die Weiterleitung von HTTP auf HTTPS. Der (CentOS) Server verwendet Pound statt dem üblichen mod_ssl. Deshalb muss die htaccess für SSL-Weiterleitungen (bei WordPress) so aussehen:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Das ist aber auch im Uberspace Wiki beschrieben.

Tweet images / pictures from Linux Bash

Nachdem ich keinen Linux Twitter Client, der Bilder aus der Kommandozeile twittern kann, gefunden habe, hier zwei kleine Scripts dazu.

Ubuntu Pakete

apt-get install python3-twython python3-iniparse libimage-exiftool-perl imagemagick

Bild verkleinern, speichern und twittern

Aufruf: tweet bild.jpg “Das ist ein Test”

#!/bin/bash
TEMPFILE="/tmp/twitter.jpg"
EIGENE="/home/chris/witze/twitter/eigene/"
FILENAME=$(basename "$1")
convert "$1" -resize 800x -auto-orient "$TEMPFILE"
exiftool -all= "$TEMPFILE"
rm "${TEMPFILE}_original"
cp "$TEMPFILE" "$EIGENE/$FILENAME"
twypic -i "$TEMPFILE" -t "$2"
rm "$TEMPFILE"

Bild mit Twython twittern

Benötigt leider einen API-Key.

#!/usr/bin/python3

# requires python3-twython, python3-iniparse ubuntu package

from iniparse import ConfigParser
from twython import Twython
from argparse import ArgumentParser

cred = "/home/chris/.twlogin"

config = ConfigParser()
config.read(cred)
APP_KEY = config.get("credentials","consumer_key") 
APP_SECRET = config.get("credentials","consumer_secret") 
OAUTH_TOKEN = config.get("credentials","access_token_key") 
OAUTH_TOKEN_SECRET = config.get("credentials","access_token_secret") 

parser = ArgumentParser()
parser.add_argument("-i", "--image", dest="imagepath",
                    help="imagepath", metavar="imagepath")
parser.add_argument("-t", "--tweet", dest="tweet",
                    help="tweet", metavar="tweet")
args = parser.parse_args()

twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)


photo = open(args.imagepath, 'rb')
twitter.update_status_with_media(status=args.tweet, media=photo)

Linux bei Facebook

  • CentOS 7: Hosts, Containers, everywhere
  • systemd rpm-backports von Fedora
  • rollout mit Chef
  • systemd für hochverfügbare Dämons, doppelter Fork, mainpid, FDs
  • talks über cgroup2 und oomd
  • http://tinyurl.com/cgroup-delegation
  • mit Python auf systemd zugreifen: facebookincubator, Github
  • Lindsay talk über Container
  • verwenden noch Syslog, passen journal an

Quelle: State of systemd @ facebook

Epson V10/V100 Scanner unter Ubuntu 16.04 und 18.04

Der Epson Corp. GT-F650 [GT-S600/Perfection V10/V100] funktioniert unter Ubuntu 16.04 LTS (Xenial Xerus) mit Simple Scan problemlos. Man muss nur die DEB-Dateien aus iscan-gt-s600-bundle-1.0.0.x64.deb.tar.gz installieren.

Unter 18.04 (Bionic Beaver) scannt er nur, nachdem man ein paar Dateien in die amd64 Verzeichnisse verschoben hat. Leider nicht mit Simple Scan, sondern nur mit XSane. Ausführliche Tipps sind im Launchpad zu finden. Eine Zusammenfassung hier.

Ich verwende den Scanner inzwischen in einer virtuellen Maschine.