Nach der ersten Installation

Wie man auch schon auf dem Video sehen konnte, war die Konfiguration nach der Installation… nenne ich es mal spartanisch:

Kein Benutzer
Kein doas.conf file
Kein Netzwerk
Keine zusätzlichen Pakete
etc.

Benutzer einrichten

Minimum was ich brauche, ist ein administrativer Benutzer (nicht root)…

useradd -m -G wheel deploy
echo "permit nopass setenv { PKG_PATH ENV PS1 SSH_AUTH_SOCK } :wheel" >> /etc/doas.conf

Warum nicht root? Aus Sicherheitsgründen:
Wenn ich aus der Entfernung ein netzwerkfähiges Gerät administrieren will, sollte ich auch die Möglichkeit haben, mich per ssh zu verbinden. Jetzt ist root allerdings der schon immer am meisten attackierte Benutzer:

Beispiel: Anzahl der gescheiterten root log in versuche der letzten 4 Monate.


Gefolgt von admin und administrator
Ich will auf meiner, sonst sicheren Maschine, keinen Benutzer mit (zwangsläufig) einem Passwort, der sich per ssh einloggen kann.

Benutzer ohne Passwort sind da viel besser. Ich hab auch die ~/.ssh/authorized_keys vom Benutzer deploy über die serielle Verbindung eingerichtet. Paranoider geht es wohl kaum.

Netzwerk einrichten

Ich habe vorläufig nur eine der drei Netzwerk Schnittstellen eingerichtet. em0 ist bei der APU.2 die Schnittstelle, die neben der seriellen DP9 liegt.

DP9 ist neben dem Buzzer, direkt hinter der SSD


Auf die schnelle mit ifconfig em0 192.168.0.200/24 eingerichtet um festzustellen ob ich überhaupt die richtige Schnittstelle angeschlossen habe. Nach der Feststellung dann mit dhclient em0 was erstmal ausreicht.
Ich hab es dann noch für den nächsten reboot auch fest eingetragen mit:

echo dhcp >> /etc/hostname.em0

Man will sich ja nicht dauernd über seriell verbinden müssen.

Auf Ansible Orchestrierung vorbereiten

Als Ansible Fan, will ich natürlich auch die APU und andere OpenBSD Geräte damit verwalten. Bloss hat OpenBSD im Basis System kein Python integriert.
In meinen Vagrant Boxen hab ich es bereits beim erstellen mit rein gebracht, was hier nur eingeschränkt möglich wäre.
Als erstes hab ich mal ein Inventory Datei, mit der APU darin, erstellt.

Wie die Meisten anderen UNIXOIDEN Betriebssysteme hat OpenBSD ein eigenes Paket System. Um dieses benutzen zu können benötige ich eine /etc/pkg.conf Datei mit einem Installationspfad, wo sich die Pakete befinden. Eine Beispieldatei befindet sich im lokalen Pfad:
/etc/examples/pkg.conf
Man könnte sie bereits jetzt über Ansible auslesen:

ansible -i hosts -m raw -a "cat /etc/examples/pkg.conf" -u deploy -b --become-method=doas puffy-1

Die /etc/pkg.conf hab ich ebenfalls mit drei Ansible raw Kommandos eingerichtet. Wo eigentlich nur eines nötig gewesen wäre.

ansible -i hosts -m raw -a "echo 'installpath = http://ftp.halifax.rwth-aachen.de/openbsd/%c/packages/%a/' > pkg.conf; doas mv pkg.conf /etc/; doas chown root:wheel /etc/pkg.conf" -u deploy -b --become-method=doas puffy-1

Danach konnte ich python-2.7.13 mit pkg_add auf der APU installieren.

ansible -i hosts -m raw -a "pkg_add python-2.7.13" -u deploy -b --become-method=doas puffy-1

Als Antwort kam folgendes zurück:

puffy-1 | SUCCESS | rc=0 >>
quirks-2.280 signed on 2017-02-02T14:50:17Z
quirks-2.280: ok
python-2.7.13:sqlite3-3.14.2: ok
python-2.7.13:libiconv-1.14p3: ok
python-2.7.13:gettext-0.19.8.1: ok
python-2.7.13:libffi-3.2.1p2: ok
python-2.7.13:bzip2-1.0.6p8: ok
python-2.7.13: ok
--- +python-2.7.13 -------------------
If you want to use this package as your default system python, as root
create symbolic links like so (overwriting any previous default):
 ln -sf /usr/local/bin/python2.7 /usr/local/bin/python
 ln -sf /usr/local/bin/python2.7-2to3 /usr/local/bin/2to3
 ln -sf /usr/local/bin/python2.7-config /usr/local/bin/python-config
 ln -sf /usr/local/bin/pydoc2.7  /usr/local/bin/pydoc
Shared connection to 192.168.0.35 closed.

Sie zeigt, das sich Python in einem anderem, als dem von Ansible erwarteten /usr/bin/python Pfad befindet.
Ich hab die Variable ansible_python_interpreter="/usr/local/bin/python2.7" erst einmal in die vorhin schon erwähnte Inventory Datei gepackt.
Ich war zu faul jetzt schon eine group_var/openbsd/main.yml Datei an zu legen.

Jetzt kann die APU auch Ansible Module abseits von raw verarbeiten.

Dieser Beitrag wurde unter Ansible, APU.2C4, Hardware, OpenBSD, Shell veröffentlicht. Setze ein Lesezeichen auf den Permalink.