Ansible: Update Raspbian

Im CCGL halten wir unsere Raspberry Pi’s mit Ansible synchron. Je nach Aufgabe werden Softwarestände und Code gleich gehalten.

Bestimmte Task sollten aber nicht mit dem allgemeinen Playbook ablaufen: Löschen von Verzeichnissen, unbeabsichtigte Installationen und kein ausserplanmäßiges Update.

Dazu habe ich die kritischen Task’s mit dem Tag „never“ versehen. Das Tag „never“ sorgt dafür, dass dieser Tag „never“ abläuft. Es sei denn, wir geben ihn expliziet an.

Beim Aufruf also, auf den „-t“ Tag und eine eventuelle Beschränkung mit „-l“ auf die im Inventory konfigurierten Maschinen achten!

ansible-playbook -D  -i inventory/hosts tasks/main.yml -l pi -t update

Bis zum nächsten Workshop im CCGL 😉

Debian: Offline Update

Update von DVD wenn kein Netzwerk verfügbar ist.

Das System auf dem neusten Stand zu halten, ist kein Hexenwerk. Das apt Werkzeug macht es uns einfach. Aber was, wenn zum Beispiel aus Gründen der Sicherheit, kein Zugriff auf das Internet möglich ist?

Mehr oder weniger aktuelle Updates lassen sich auch als DVD ISO Image auf einem anderen Computer mit WAN Zugang herunter laden (Link).

Das Image dann als CDROM einbinden – ich mache das über die fstab – und dann mit apt-cdrom als Repository dem System bekannt machen.

Hier kann sich das System unterschiedlich verhalten. Entscheident ist, dass das Image als /media/cdrom – so, wie es in der /etc/apt/sources.list eingetragen wurde – mounted, also verfügbar ist.

Das anschließende apt-upgrade installiert nun die Updates auf der DVD – apt autoremove anschließend nicht vergessen. Wird ein fehlender oder unbekannter Key moniert, die Zeile „deb cdrom:…..“ in der /etc/apt/sources.list auf „deb [ trusted=yes ] cdrom:…..“ ändern. Damit wird auch dem unbekannten Key vertraut und installiert die Quelle anstandslos.

COBOL: Shared Library

Compilierung von OpenCobol verläuft nicht in jeder Distribution problemlos. Ich nutze derzeit Fedora 29 (RedHat) und musste etwas nach der Lösung suchen.

Nach dem Download der Source von OpenCobol und dem Nachladen notwendiger Development Librarys, funktioniert die mitgelieferte MAKE Konfiguration ganz passabel.

./configure, make, make check, make test und make install laufen meisst fehlerfrei durch. Trotzdem erhält man nach dem ersten kompilieren und dem Start seiner Anwendung den Fehler „error while loading shared libraries: libcob.so.4“ o.ä.

Das liegt an fehlender Path Bekanntgabe. Im Verzeichnis /etc/ld.so.conf.d werden die Pfade zu diversen Libraries bekannt gegeben. In der MAKE Konfiguration ist vorgesehen, die Programm Bibliotheken im Verzeichniss /usr/local/lib abzulegen. Damit sie auch gefunden werden, ist also eine .conf anzulegen mit dem Pfad als Inhalt. Nach einem ldconfig ist der Pfad bekannt und cobc sowie das kompilierte Programm funktionieren einwandfrei.

Das Verhalten unterscheidet sich unter den Distributionen (Debian, RedHat, SuSe) und sogar von Release zu Release.