docker: auto completion

In der Regel ist es nicht gewollt auf Docker Containern manuell Veränderung vorzunehmen. Will/muss man das doch und hat das Debian 10 Image von dockerhub laufen, fehlt eventuell die bash-completion. Will man nun auch noch die „packet completion“ bei apt install tm[tab][tab] haben, muss man noch in der Datei

/etc/apt/apt.conf.d/docker-clean

Dir::Cache::pkgcache "";
Dir::Cache::srcpkgcache "";

auskommentenieren. Danach geht auch das…jedenfalls bei mir.

Hinweis: Kernel Panic – Debian 8.10 und Kernelupdate

Wer wie ich Hardware (VMs  sind je nach Konfiguration auch betroffen, siehe Link) mit mehreren Sockets benutzt wird eventuell in diesen Bug gelaufen sein:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=883938

Im Bugreport stehen ein paar Workarounds (Kernelparam: maxcpus=1, nosmp oder numa=off), damit die Maschine wenigstens wieder bootet. Falls noch nicht geupdatet wurde am besten den momentanen Kernel pinnen oder einfach auf ein Update warten.

Probleme nach libvirt Update

Sollte man bei KVM  mit Portweiterleitung für VMs (z.B.  iptables -t nat -A PREROUTING -p tcp -d 123.123.123.123 –dport 1234 -j DNAT –to-destination 192.168.99.99:22) arbeiten und folgende Debian Updates eingespielt haben:

[UPGRADE] libvirt-bin 0.8.3-5+squeeze2 -> 0.8.3-5+squeeze5
[UPGRADE] libvirt0 0.8.3-5+squeeze2 -> 0.8.3-5+squeeze5
[UPGRADE] python-libvirt 0.8.3-5+squeeze2 -> 0.8.3-5+squeeze5

Nach dem Einspielen aber bemerkt haben man , dass die Portweiterleitung nicht mehr funktioniert und man auch durch erneutes Eintragen der iptables/routing oder was auch immer für Regeln keinen Erfolgt erzielt, dann könnte tatsächlich ein Reboot des Hosts helfen.

Galera Cluster mit Ubuntu 12.04 64bit und MySQL 5.5 – Teil 1

Warum  Ubuntu? Weil ich mal etwas einigermaßen aktuelles Testen wollte ;-). Tatsächlich lief mein erster Test mit Galera und MySQL 5.1 unter drei Debian Nodes ohne großen Aufwand. Ich beschränke mich auf die Installation des ersten Nodes, da die Installation eines weiteren Nodes nur minimal abweicht. Zum Testen sollte man 3-4 Maschinen zur Verfügung haben.

Einige Daten über Galera von der Entwicklerseite:

MySQL/Galera is synchronous multi-master cluster for MySQL/InnoDB database, having features like:

  • Synchronous replication
  • Active-active multi-master topology
  • Read and write to any cluster node
  • Automatic membership control, failed nodes drop from the cluster
  • Automatic node joining
  • True parallel replication, on row level
  • Direct client connections, native MySQL look & feel

Benefits

These features yield un-seen benefits for a DBMS clustering solution:

  • No slave lag
  • No lost transactions
  • Both read and write scalability
  • Smaller client latencies

Von codership.com/products/mysql_galera die benötigten Pakete laden, zur Zeit:

galera-23.2.1-amd64.deb
mysql-server-wsrep-5.5.23-23.6-amd64.deb

Das System vorbereiten:

aptitude install libaio1 libssl0.9.8 libdbi-perl libdbd-mysql-perl mysql-client libmysqlclient18 mysql-common libplrpc-perl libnet-daemon-perl

Galera und Mysql installieren:

dpkg -i galera-23.2.1-amd64.deb mysql-server-wsrep-5.5.23-23.6-amd64.deb

In der /etc/mysql/my.cnf

bind-address           = 127.0.0.1

anpassen bzw. auskommentieren.

Mysql starten

/etc/init.d/mysql start

mysqladmin -u root password 'superpassword'

mysqladmin -u root -p -h hostname password 'superpassword'

Ich habe einen User fuer die Repliaktion auf jedem Node angelegt. Zum testen kann man natürlich auch einfach den Mysqladminuser nehmen


mysql> SET wsrep_on = OFF; grant all on *.* to replikator@'%' identified by 'thisisnotfacebookandimnotyourfriend';

In der /etc/mysql/conf.d/wsrep.cnf

# Full path to wsrep provider library or 'none'
#wsrep_provider=none
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# Logical cluster name. Should be the same for all nodes.
wsrep_cluster_name="imnotshyijusdontlikeyou_cluster"

# Group communication system handle
wsrep_cluster_address="gcomm://" #Dies nur beim ersten Server, bei den anderen trägt man dort die Adresse eines anderen Nodes ein. Spaeter sollte man die IP auch beim ersten Node anpassen

# Group communication system handle# SST authentication string. This will be used to send SST to joining nodes.
# Depends on SST method. For mysqldump method it is root:
wsrep_sst_auth=replikatior:thisisnotfacebookandimnotyourfriend #hier muss natuerlich ein user mit den benötigten Rechten eingetragen werden, im Zweifel root

wsrep_cluster_address sollte später nicht leer bleiben.

Danach

/etc/init.d/mysql restart 

Am besten tail -f /varlog/syslog auf den einzelnen Maschinen laufen lassen um zu schauen ob Fehler auftauchen. Zum testen Datenbanken auf den einzelnen Nodes anlegen und mit Daten füllen.

Größtenteils habe ich mich an http://blog.causal.ch/2012/02/installing-mysql-galera-on-debian-60.html orientiert. Empfehlen kann man natürlich generell die Galera Seite und den Artikel im Admin -Magazin 04/2012 über Galera Cluster für Mysql. Die einzelnen Optionen in der/etc/mysql/conf.d/wsrep.cnf sollte man sich nochmal genauer anschauen.    Teil 2 folgt dann (hoffentlich) mit garbd, pen, HAproxy, Splitbrain Problem und ein-zwei mehr Erfahrungen.

Debian moves to LibreOffice

http://www.debian.org/News/2011/20110623

 

Interested users of the current stable release Debian 6.0 Squeeze may add the following line in their /etc/apt/sources.list file:

deb http://backports.debian.org/debian-backports squeeze-backports main

After adding this, perform an update and install the package libreoffice from the squeeze-backports suite using the package management software of your choice (e.g. apt-get update ; apt-get install -t squeeze-backports libreoffice). Previously installed OpenOffice.org packages should be uninstalled automatically. Depending on the used desktop environment, you might also have to install the libeoffice-gtk, libreoffice-gnome or libreoffice-kde packages.

mehr fuer mich als fuer euch ;-).

 

Dell Poweredge und Bios Update unter Debian Squeeze

Getestet mit Dell Poweredge 1950/2650 und Debian Squeeze 64/32bit

Ich habe mich groesstenteils an dies Howto gehalten.

Grund fuer das Biosupdate waren Meldungen wie:

PCIE NonFatal Er: Non Fatal IO Group sensor, PCIe error (Bus 0 Device 0 Function 0) was asserted
I/O Fatal Err: Fatal IO Group sensor, fatal IO error was asserted

bei

omreport system esmlog

Also fangen wir an.

aptitude install libsmbios-bin libsmbios2

dann schauen wir mal was wir laufen haben:

getSystemId
Libsmbios:    2.0.3
System ID:    0x01B3
Service Tag:  XXXXXXX
Express Service Code: 43156152163
Product Name: PowerEdge 1950
BIOS Version: 2.5.0
Vendor:       Dell Inc.
Is Dell:      1

Dann gehen wir auf http://linux.dell.com/repo/firmware/bios-hdrs/ und holen und das neue Bios. Dabei ist die System ID wichtig. Fuer mein System gab es ein aktuelles Bios  unter

http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x01b3_version_2.7.0/

finden. Die version_2.7.0 ist dabei die Biosversion.  Also weiter mit

wget http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x01b3_version_2.7.0/bios.hdr

dann machen wir ein

modprobe dell_rbu

mit

lsmod|grep dell

schauen wir ob das Modul geladen wurde. In der anderen Anleitung steht noch was  von firmware_class dell_rbu, gab es aber bei mir nicht.
Nun ein

#dellBiosUpdate -u -f bios.hdr
Supported RBU type for this system: (MONOLITHIC, PACKET)
Using RBU v2 driver. Initializing Driver.
Setting RBU type in v2 driver to: PACKET
writing (4096) to file: /sys/devices/platform/dell_rbu/packet_size
Writing RBU data (4096bytes/dot): ..............................
Done writing packet data.
Activate CMOS bit to notify BIOS that update is ready on next boot.
Update staged sucessfully. BIOS update will occur on next reboot.

Danach rebooten. Beim booten wird Das Biosupdate dann ausgefuehrt.  Ueberpruefen ob das neue Bios auch  laeuft (steht natuerlich auch schon beim booten da):

#getSystemId
Libsmbios:    2.0.3
System ID:    0x01B3
Service Tag:  JTQ244J
Express Service Code: 43156152163
Product Name: PowerEdge 1950
BIOS Version: 2.7.0
Vendor:       Dell Inc.
Is Dell:      1

Das wars. Ach ja, damit das LCD Display wieder blau wird und die Fehlermeldungen verschwinden, muss man noch das Hardwarelog loeschen. Kann man ueber die DRAC machen, so wie ich, aber sicherlich auch ueber omconfig, einfach mal hier schauen.

KVM- und XEN-VMs untereinander erreichbar

Ich wechsle zur Zeit von XEN zu KVM. Das ganze System verteilt sich ueber 4 Rechner. 3xKVM und 1xXEN. Jeder Host beherbergt 3-4 virtuelle Maschinen. Die VMs nutzen alle NAT im 192.168er Netz. Nun war es bei XEN kein Problem, dass sich die VMs ueber die Hostgrenzen hinweg erreichen konnten. XEN1-VM1 konnte also ohne Umwege  auf XEN2-VM1 zugreifen. Das vereinfacht natuerlich sehr viele Dinge (Mysql Replikation, failover und und und). Noetig war quasi nur ein

ip route add XEN2-VM1 via XEN2 dev eth0?

auf XEN1, damit von den XEN1-VMs auf die XEN2-VM1 zugegriffen werden konnte.  Entweder fuer jede VM einzeln oder fuer das ganze Netz eintragen, falls moeglich.

Nun kam KVM ins Spiel. Bei KVM konnte ich problemlos noch von XEN1-VM1 auf KVM-VM1 zugreifen. Umgekehrt, also von KVM-VM1 auf XEN1-VM1 funktionierte nicht. Abhilfe schaffte

?for i in /proc/sys/net/ipv4/conf/*/proxy_arp
do
echo 1 >>$i
done

Kann man natuerlich  auf die noetigen Interface begrenzen. Bei XEN war proxy_arp bereits aktiviert, daher gab es dort keine Probleme.

multipath unter Debian/squeeze

Anscheinend haben sich die Optionen bei scsi_id geaendert.  Jedenfalls musste ich die multipath.conf anpassen.

Bei Lenny:

getuid_callout  "/lib/udev/scsi_id -g -u -s /block/%n"
Bei Squeeze:
getuid_callout  "/lib/udev/scsi_id -g -u --device=/dev/%n"

Das mit dem „/block/“ hab ich eh nie verstanden.

update:
man kann getuid_callout auch einfach in der multipath.conf auskommentieren, aber das waere zu einfach.

ldap client unter squeeze

Einfach mal copy&paste von http://www.debian.org/releases/squeeze/amd64/release-notes/ch-information.de.html#ldap-gnutls

Eine Funktionalität in den Kryptographie-Bibliotheken, die von den LDAP-Bibliotheken genutzt werden, führt dazu, dass Programme, die LDAP verwenden und versuchen, ihre wirksamen Privilegien zu ändern, beim Verbindungsaufbau zur einem LDAP-Server fehlschlagen, wenn der Server TLS oder SSL nutzt. Dies kann Probleme für suid-Programme verursachen, die libnss-ldap verwenden, wie zum Beispiel sudo, su oder schroot. Außerdem können auch Programme Probleme bekommen, die LDAP-Suchvorgänge durchführen, wie sudo-ldap.

Es wird empfohlen, das Paket libnss-ldap durch libnss-ldapd zu ersetzen, einer neuen Bibliothek, die einen separaten Daemon (nslcd) für alle Suchanfragen verwendet. Der Ersatz für libpam-ldap ist libpam-ldapd.

Beachten Sie, dass libnss-ldapd den NSS-Caching-Daemon (nscd) vorschlägt. Sie sollten überprüfen, ob dieser für Ihre Umgebung passend ist, bevor Sie ihn installieren. Als Alternative zu nscd können Sie unscd in Betracht ziehen.

Mysql Replikation nach squeeze Upgrade

Nach dem Updgrade auf squeeze lief die Master-Slave Replikation nicht mehr. Schuld waren korrupte Tabellen im Slave. Der einfachste Weg war:

1. Mysql stoppen
2. myisamchk -r /var/lib/mysql/*/*.MYI
3. Mysql starten

Das hat jedenfalls bei mir geholfen. Auf jeden Fall in die Logdateien schauen.
Der Master nutzt lenny (mysql-server 5.0.51a-24+lenny59), der Slave squeeze (mysql-server 5.1.49-3). Nagios meldet nun wieder
Master: 18117093 Slave: 18117093
OK: Master: 811/18117093 Slave: 811/18117093 Diff: 0/0

Multipath laeuft auch wieder wie es soll. Warum kommt spaeter…falls ich es verstehe ;-).

debian/squeeze upgrade

Vorher ein Backup machen (ja ja nachher fliessen sonst kleine Traenen). Das Lenny System nochmal updaten, damit die Versionsspruenge nicht zu gross sind. Ich habe das bisher auf 3 Systemen gemacht (ESX VM, XEN VM und 08/15 PC). Bei der XEN VM ist das Wirtsystem noch Lenny.

Man aendert die /etc/apt/sources.list zu

deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.de.debian.org/debian/ squeeze main contrib non-free
# Security updates
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

dann

apt-get update
apt-get install apt dpkg aptitude
apt-get dist-upgrade

Dann wartet man. Default shell ist nun dash und nicht mehr bash, /bin/sh zeigt also auf dash. Die Organisation der Startskripte hat sich geaendert (DependencyBasedBoot), muss ich mir nochmal genauer anschauen, laeuft aber alles. Bisschen nervig wenn man phpmyadmin und mysql auf unterschiedlichen Servern hat, weil er phpmyadmin fuer die DB konfigurieren will und noergelt wenn keine da ist. Falls mir noch was auffaellt, kommt das auch hier rein.

update 1
Hat man auf dash als default shell umgestellt sollte man bei Nagios Skripten darauf achten, das oben auch

#!/bin/bash

steht und nicht

#!/bin/sh

Bei mysql faellt die Option

skip-bdb

in der /etc/mysql/my.cnf raus, also auskommentieren. Da gibt es noch mehr zu beachten dazu vielleicht spaeter noch was.

update 2
ein lenny XEN auf squeeze zu bringen ist echt ein Armutszeugnis fuer Debian…gleiches gilt fuer multipath