Puppet Snippets

  • Wenn man den Katalog von einem Node anschauen möchte, kann man sich diesen auf dem Master mit folgendem Befehl kompilieren:
    puppet master --compile nodename
  • In Hiera kann man Werte wie folgt auslesen:
    hiera -c /etc/puppet/hiera.yaml apt::sources ::fqdn="puppetnode.example.net"

    Weitere Variablen kann man einfach so wie den fqdn auch übergeben:

    hiera -c /etc/puppet/hiera.yaml apt::sources ::fqdn="puppetnode.example.net"  ::provider="foobar"

 

Note to myself: chroot Umgebung betreten

Mein Halbwissen ist noch aus Gentoo Zeiten und entsprechend 10 Jahre alt, deswegen muss ich immer nachdenken. Hoffentlich nun bald nicht mehr nachdem es mal konzentriert durch meine Finger geflossen ist.

Beispiel mit boot Partition sda1, root ist sda3

mkdir /mnt/sda3
mount /dev/sda3 /mnt/sda3/
mount /dev/sda1 /mnt/sda3/boot
mount -t proc none /mnt/sda3/proc/
mount -t sysfs sys /mnt/sda3/sys/
mount -o bind /dev /mnt/sda3/dev/
chroot /mnt/sda3 /bin/bash

Eventuell noch die /etc/resolv.conf rüberkopieren wenn das Netzwerk benötigt wird. Swap kann noch mit swapon /dev/sda2 oder so aktiviert werden.

SSH Konfiguration: Privat, Arbeit, teilen mit Kollegen?!

Ich habe meine .ssh/config Datei mit den Einträgen die ich benötige. In dieser Datei habe ich Einträge für dienstliche Systeme aber auch private. Aus diesem Grund kann die Datei nicht einfach mit anderen Kollegen geteilt werden. Wie das dennoch erreicht werden kann, kurz und pragmatisch hier beschrieben:

Als allererstes muss ich die Konfigurationsdatei aufsplitten können in mehrere Teile. Also ein ~/.ssh/config.d/ Verzeichnis anstatt einer einzelnen Datei. SSH unterstützt das von Haus aus nicht, man kann sich aber an dieser Stelle eines Tricks bedienen: ein Alias für das Kommando „ssh“, das bei jedem Aufruf die .ssh/config einfach neu schreibt. Dafür die folgende Zeile in die .bash_aliases  eintragen:

alias ssh="cat ~/.ssh/config.d/* > ~/.ssh/config; ssh"

Als zweites gilt es nun die Dateien aufzuspalten. Ich persönlich pflege drei Dateien:

  1. general
  2. privat
  3. work

In der ersten Datei habe ich Optionen, die für alle Hosts gelten:

Host *
Compression             yes
CompressionLevel        9
ServerAliveInterval     30
#VisualHostKey          yes

In den anderen Dateien sind die Definitionen für die privaten und die Arbeitsrechner.

Der dritte Punkt ist der einfachste: Die Dateien einfach in ein Repository legen, symbolische Links aus dem Repository in das config.d Verzeichnis erzeugen und mit den Kollegen teilen.

Natürlich Backups zwischendrin etc. nicht vergessen ;-)