Tweets der Woche

Folgende Tweets wurden in dieser Woche in #puppet-community gesammelt:

Diesbezüglich gibt es noch einige Zitate von Robert ‘rnelson0’ Nelson:

Katniss Everdeen took a fistful of poison berries. No, the EULA says we can t, said Peeta. So she fed him to the hounds.

The raptors were peering through the glass door. “Well, I know this system, but I’m not allowed to reverse engineer it.

this may be the greated internet in all the internets

Außerdem gibt es noch ein Zitat von Daniele ‘daenny’ Sluijters:

Sailor Moon held out the glowing magic scroll. “In the name of the EULA, I will punish you!” The demon cowered in terror. #oraclefanfic

Posted in General, IT-Security, Linux | Leave a comment

Linux Short Tip: Hübsche Tabellen

psql kann hübsche Unicode Tabellen erzeugen, dazu legt man einfach eine ~/.psqlrc Datei an mit folgendem Inhalt:

\pset border 2
\pset linestyle unicode

Das Ergebnis sieht dann so aus:

Line style is unicode.
puppetdb=# SELECT * FROM value_types;
┌────┬─────────┐
│ id │  type   │
├────┼─────────┤
│  0 │ string  │
│  1 │ integer │
│  2 │ float   │
│  3 │ boolean │
│  4 │ null    │
│  5 │ json    │
└────┴─────────┘
(6 rows)

puppetdb=#

Vorher:

puppetdb=# SELECT * FROM value_types LIMIT 10;
 id |  type   
----+---------
  0 | string
  1 | integer
  2 | float
  3 | boolean
  4 | null
  5 | json
(6 rows)

puppetdb=#
Posted in General, Linux, Short Tips | Leave a comment

Italienischer Kartoffelsalat

Zutaten für 10 Personen:

  • 2,5kg Kartoffeln
  • 150gr entsteinte Oliven
  • 2EL Kapern
  • 280gr in Streifen geschnittene getrocknete Paprika
  • 3 rote Zwieblen
  • Bund Frühlingszwiebeln
  • Bund Petersilie
  • 2 Knoblauchzehen
  • grobes Meersalz
  • Pfeffer
  • Olivenöl
  • Balsamico

Man nehme ein Backblech und bepinselt es mit Olivenöl, danach kann man die gesäuberten und halbierten Kartoffeln auf dem Blech verteilen und mit groben Meersalz bestreuen. Bei 200Grad kommen diese nun für 45 Minuten in den Backofen, zwischendurch müssen sie gewendet werden. In der Zwischenzeit kann man die Zwiebeln halbieren und in Streifen schneiden, die Oliven in Ringe schneiden und die Kapern grob hacken. Die Frühlingszwiebeln werden in Ringe geschnitten, die Petersilie fein gehackt und die Knoblauchzehen fein gewürfelt. Danach alles in eine große Schüssel geben und ziehen lassen bis die Kartoffeln fertig sind, diese dann dazu geben. Die Kartoffeln ziehen einiges an Marinade auf, hier muss also nachgewürzt werden mit Pfeffer, Olivenöl und Balsamico. Um den Geschmack zu intensivieren kann man erst schnibbeln und ziehen lassen, danach die Kartoffeln in den Ofen geben. Somit kann die Marinade länger durchziehen. Der fertige Salat sollte 12-14h ruhen.

Besten Dank an noodles für das Rezept und die Fotos!

Posted in General, Nerd Stuff, Recipes | Leave a comment

Bacon Bomb

Zutaten:

  • 1Kg Hackfleisch (Halb/Hlab)
  • 650-700gr Bacon
  • 100gr Rub
  • 130gr Cheddar/Gouda Mischung nach belieben
  • Eine Hand voll eingelegter Jalapeños

Bacon flechten, Hack drauf, Rest drauf, rollen, einpinseln mit Mississippi Barbeque Sauce, grillen bei ~160Grad bis man eine Kerntemperatur von 80Grad hat, regelmäßig nachpinseln.

Das ganze wurde von Apasmara aus #archlinux.de getestet und fotografiert.

Update 2015-08-02: Anschnitt-Bild hinzugefügt.

Posted in General, Nerd Stuff, Recipes | Leave a comment

Postgres Short Tips

In der Standardinstallation von Postgres darf der lokale User postgres via localhost auf den Server zugreifen:

su postgres
cd ~
psql

Auflisten aller Datenbanken auf dem Server:

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 puppetdb  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =T/postgres          +
           |          |          |             |             | postgres=CTc/postgres+
           |          |          |             |             | puppetdb=CTc/postgres
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

postgres=#

Auflisten aller User:

postgres=# \du
                             List of roles
 Role name |                   Attributes                   | Member of 
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 puppetdb  |                                              | {}

postgres=#

Das Postgres eigene Yum Repository für 9.4 unter CentOS einrichten + Postgres updaten:

yum install -y http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm
yum install -y postgresql94-contrib postgresql94-libs postgresql94 postgresql94-server

Eine Datenbank dumpen:

pg_dump datenbankname
pg_dump: server version: 9.4.4; pg_dump version: 9.2.13
pg_dump: aborting because of server version mismatch

Warum klappt das hier nicht? Im Vorfeld war Postgres aus den CentOS Repos installiert, pg_dump existiert ebenfalls im Postgres eigenen Repo, yum ersetzt aber bei Installationen von Paketen keine Datein. Um das Problem zu lösen einfach das alte Postgres deinstallieren und das neue erneut installieren:

yum erase -y postgresql-libs postgresql postgresql-server
yum reinstall -y postgresql94

Nun klappt auch der Datenbankdump. Man sollte noch drauf achten als welcher User man eine DB versucht zu dumpen. Der root User hat im Normalfall keinen Zugriff auf eine DB, das dumpen muss also als User postgres passieren:

su postgres
cd ~
pg_dump puppetdb > puppetdb.sql

Einrichten von Postgres 9.4 + Datenbanken auf CentOS 7 via Puppet:

class profiles::postgresqlserver {
  class { 'postgresql::globals':
    encoding            => 'UTF-8',
    locale              => 'en_US.UTF-8',
    manage_package_repo => true,
    version             => '9.4',
  }->
  class { '::postgresql::server':
    listen_addresses  => $::ipaddress_eth1,
    ipv4acls          => ['host zabbix zabbix 192.168.0.9/32 md5',],
  }
  class {'::postgresql::server::contrib': }
  postgresql::server::db { 'zabbix':
    user     => 'zabbix',
    password => postgresql_password('zabbix', 'e85zvffd78zx4jurijmdtfhvhr57dh58ujxri'),
  }
}
Posted in General, Linux, Puppet, Short Tips | Leave a comment

Short Tip: Fast deinstallierte .debs komplett entfernen

Nicht schick aber tut was es soll:

aptitude purge $(dpkg -l | grep -v ^ii | while read line; do echo -n "$(echo $line | awk '/amd64|all/ {print $2}') "; done)

Wir holen uns alle Pakete welche nicht den Status ii haben (installiert), aus dieser Liste nehmen wir alle aus den Architekturen amd64 oder all (entfernt einige Kommentare die mit ausgegeben werden), dann geben wir die Paketnamen der einzelnen Zeilen mit einem Leerzeichen getrennt aus und übergeben das ganze Konstrukt an aptitude.

Posted in General, Linux, Short Tips | Leave a comment

Cloud Instanzen optimieren

Viele Administratoren haben in VMs jahrelang ext3 als Dateisystem eingesetzt. Bei lokalem Storage ist dies durchaus sinnvoll, da das Dateisystem robuster gegen Timeouts ist als ext4. Wie im Post zur Umstellung auf virtio-scsi erklärt will man spätestens bei verteiltem Storage aber ext4 nutzen, primär wegen der discard Mountoption. Wie konvertiert man das ganze nun?

Zuerst sollte die VM in ein Live Linux gebootet werden, danach kann man für jede Partition die ext4 Features hinzufügen:

for i in /dev/sda1 /dev/sda2 /dev/sdb1; do
tune2fs -O extent,uninit_bg,dir_index $i;
done

Um das nach fehlende Journal zu erzeugen muss ein Filesystemcheck erzwungen werden:

for i in /dev/sda1 /dev/sda2 /dev/sdb1; do
fsck -fvyC0 $i;
done

Nun ist es ein ext4 Dateisystem, alte Dateien liegen aber immernoch als ext3 vor, um dies zu ändern kann man sie defragmentieren:

for i in /dev/sda1 /dev/sda2 /dev/sdb1; do
mount -t ext4 $i /mnt;
e4defrag -v $i;
umount /mnt;
done

Zum Schluss muss man noch die Mountoptionen in der fstab anpassen, so könnte es aktuell aussehen:

UUID=643b6731-c354-4e6b-bd69-1eae601e638f /boot ext3 defaults 0 2

Daraus sollte werden:

UUID=643b6731-c354-4e6b-bd69-1eae601e638f /boot ext4 defaults,discard,noatime,barrier=0 0 2
  • UUID – Sollte genutzt werden anstatt einem absoulten Pfad
  • /boot – Hier wird es gemountet
  • ext4 – Das Dateisystem
  • default – Die Standardoptionen für ext4
  • discard – Gelöschte Blöcke automatisch freigeben
  • noatime – Keine lesenden Dateizugriffe speichern
  • barrier – Barriers sind auf gesichertem Cache unnötig
Posted in General, Linux, Virtualization | Leave a comment

Short Tip: Gentoo Compile Time vergleichen

Gentoo ist eine Source Based Distribution, dies bedeutet, dass bei der Installation einer Software kein fertiges Paket heruntergeladen wird, sondern nur Source Code, dieser wird dann lokal kompiliert. Mit der Zeit wechselt man vielleicht die Hardware, Software wird erweitert, man wechselt den Kompiler. Dann ist es hilfreich zu vergleichen, wie lange das Kompilieren der einzelnen Versionen gedauert hat, dazu gibt es zwei Möglichkeiten:

host01 ~ # qlop -Hg gcc
gcc: Sat Sep 28 15:14:41 2013: 34 minutes, 20 seconds
gcc: Mon Sep 30 13:21:18 2013: 35 minutes, 7 seconds
gcc: Mon Sep 30 20:49:52 2013: 35 minutes, 11 seconds
gcc: Sat Dec 28 20:30:43 2013: 37 minutes, 3 seconds
gcc: Tue Jan 21 09:46:33 2014: 37 minutes, 3 seconds
gcc: Fri Oct 31 14:28:17 2014: 39 minutes, 16 seconds
gcc: Thu Jan 22 12:43:55 2015: 36 minutes, 26 seconds
gcc: Sat Feb  7 19:13:25 2015: 41 minutes, 56 seconds
gcc: Sun Feb  8 14:40:35 2015: 42 minutes, 41 seconds
gcc: Sun Feb  8 15:24:15 2015: 37 minutes, 16 seconds
gcc: Thu Mar 19 23:36:54 2015: 36 minutes, 7 seconds
gcc: Mon Mar 30 20:34:27 2015: 43 minutes, 10 seconds
gcc: Sat May  9 14:27:51 2015: 42 minutes, 44 seconds
gcc: Tue Jun  2 11:04:15 2015: 50 minutes, 22 seconds
gcc: Tue Jun  2 11:54:37 2015: 41 minutes, 40 seconds
gcc: 15 times
host01 ~ #
host01 ~ # genlop -t gcc
 * sys-devel/gcc

     Sat Sep 28 15:49:01 2013 >>> sys-devel/gcc-4.7.3-r1
       merge time: 34 minutes and 20 seconds.

     Mon Sep 30 13:56:25 2013 >>> sys-devel/gcc-4.7.3-r1
       merge time: 35 minutes and 7 seconds.

     Mon Sep 30 21:25:03 2013 >>> sys-devel/gcc-4.7.3-r1
       merge time: 35 minutes and 11 seconds.

     Sat Dec 28 21:07:46 2013 >>> sys-devel/gcc-4.7.3-r1
       merge time: 37 minutes and 3 seconds.

     Tue Jan 21 10:23:36 2014 >>> sys-devel/gcc-4.7.3-r1
       merge time: 37 minutes and 3 seconds.

     Fri Oct 31 15:07:33 2014 >>> sys-devel/gcc-4.8.3
       merge time: 39 minutes and 16 seconds.

     Thu Jan 22 13:20:21 2015 >>> sys-devel/gcc-4.9.2
       merge time: 36 minutes and 26 seconds.

     Sat Feb  7 19:55:21 2015 >>> sys-devel/gcc-4.9.2
       merge time: 41 minutes and 56 seconds.

     Sun Feb  8 15:23:16 2015 >>> sys-devel/gcc-4.9.2
       merge time: 42 minutes and 41 seconds.

     Sun Feb  8 16:01:31 2015 >>> sys-devel/gcc-4.7.3-r1
       merge time: 37 minutes and 16 seconds.

     Fri Mar 20 00:13:01 2015 >>> sys-devel/gcc-4.7.3-r1
       merge time: 36 minutes and 7 seconds.

     Mon Mar 30 21:17:37 2015 >>> sys-devel/gcc-4.9.2
       merge time: 43 minutes and 10 seconds.

     Sat May  9 15:10:35 2015 >>> sys-devel/gcc-4.7.4
       merge time: 42 minutes and 44 seconds.

     Tue Jun  2 11:54:37 2015 >>> sys-devel/gcc-4.9.2
       merge time: 50 minutes and 22 seconds.

     Tue Jun  2 12:36:17 2015 >>> sys-devel/gcc-4.7.4
       merge time: 41 minutes and 40 seconds.

host01 ~ #

genlop kann installiert werden mit:

emerge -v app-portage/genlop

qlop via:

app-portage/portage-utils

Vielen Dank an #gentoo.de für den Hinweis auf qlop.

Posted in General, Linux, Short Tips | Leave a comment

Warum Openstack kacke ist

Ich bin kein Freund von Openstack und hatte das schon mehrfach begründet, Martin Loschwitz hat dazu einen Talk gehalten mit den gleichen Argumenten:

Posted in General, Internet found pieces, Linux, Virtualization | Leave a comment

Short Tip: Welches Paket bietet Datei XY?

Man möchte ein Tool installieren, weiß aber nicht in welchem Paket es sich versteckt, hier die nötigen Befehle dazu:

Arch:

pacman -Syu pkgfile
pkgfile -s datei

Debian:

aptitude -y install apt-file
apt-file update
apt-file search datei

CentOS:

yum whatprovides datei

Gentoo:

emerge -v app-portage/pfl
e-file datei

FreeBSD:

whereis datei
Posted in General, Linux, Short Tips | Leave a comment