Vorwort

Wir richten unsere Geräte mit Ansible ein, ein Tool zur Konfigurationsverwaltung. Dadurch ist jederzeit transparent und nachvollziehbar, wie die Installation erfolgt. Ein großer Vorteil von Ansible liegt in der einfachen Erweiterbarkeit und Anpassbarkeit der Skripte. Die Bereitstellung einer aktuellen Geräteversion bleibt dabei ein fortlaufender Prozess: Während eines Schuljahres entstehen regelmäßig neue Anforderungen oder bestehende ändern sich. Diese Entwicklungen werden direkt im Ansible-Repository abgebildet. Weitere Informationen dazu, wie Ansible funktioniert und welche Schritte notwendig sind, um von Grund auf eine an die eigene Schule angepasste Version unserer Musterlösung zu erstellen, finden Sie hier. [1]

MDM

Mobile-Device-Management (MDM) steht für die zentralisierte Verwaltung von mobilen Geräten und kann eine große Arbeitserleichterung für die Administratorin sein – wenn es auch das macht, was es vorgibt zu tun.

Die Geräte des 8 Punkteplans müssen per MDM verwaltet werden. Für den Kinderschutz hat das BMB auch eine ausführliche Anleitung zur Umsetzung zur Verfügung gestellt. Von dort heißt es auch, das es quasi ein „Kinderspiel“ ist, dies für die eigene Schule umzusetzen. Die Erfahrungen der IT-Systembetreuer:Innen und Kostoden zeigen etwas anderes. Ein kleiner Ausschnitt aus einer ganzen Liste von Problemen:

Geräte verlieren unter Umständen alle nutzbaren Adminzugänge.
Unklar ist, ob CCCS nur einmalig konfiguriert oder laufend in den Tenant eingreift.
Der Filter greift nicht in allen Browsern.
Einstellungen fehlen, Policies sind doppelt und Werte geändert

Das bestärkt uns immer wieder in unserer Entscheidung für Freie Open-Source-Software: Sie steht für Einfachheit, Transparenz, Nachvollziehbarkeit, Zuverlässigkeit und klare Strukturen. Auch beim MDM, das wir hier näher erläutern.

Auf den Linux-Geräten haben wir MDM mit ansible-pull umgesetzt. Ansible ist ein Open-Source-Automatisierungstool, das Verwaltungsaufgaben zentralisiert.

Ansible ist

  • agentenlos (es erfordert keine spezielle Installation auf Clients),
  • idempotent (das Ergebnis ist bei jedem Lauf identisch).

Ansible-pull erfordert ein Git-Repository. Damit ist auch sichergestellt, dass alle Änderungen nachvollziehbar und per Commit-Message entsprechend dokumentiert sind.

Wann und wie oft ansible-pull aufgerufen wird lässt sich am besten über einen Cronjob steuern.

z.B. ein „@reboot“ in der Crontab führt ansible-pull nach jedem reboot aus. Platziert man ein ansible-pull script in /etc/cron.daily wird er normalerweise einmal am Tag ausgeführt und in /etc/cron.hourly stündlich. Man kann ihn auch an mehreren Stellen eintragen.

Für unsere Zwecke haben wir @reboot festgelegt. Das hat auch den Vorteil, dass ansible-pull von den SuS. einfach per reboot angestoßen werden kann. Wird eine bestimmte Software auf den Rechnern gebraucht, die noch nicht installiert ist, kann ich das durch eine Änderung im Git-Repo auf den Laptops ausrollen.

In diesem Beispiel wird die Software VLC und „Eye of gnome“ installiert und rhythmbox deinstalliert. Die Struktur ist einfach und der Name dient noch als Erklärung, was der Task genau macht.

- hosts: all
  become: yes
  tasks:
    - name: install vlc
      apt:
        pkg: "vlc"
        state: present      
      
    - name: install eye of gnome
      apt:
        pkg: "eog"
        state: present

    - name: uninstall rhythmbox
      apt:
        pkg: "rhythmbox"
        state: absent

Im nächsten Beispiel wird die Gruppe sudo hinzugefügt, falls sie noch nicht vorhanden ist. Darüberhinaus wird ein Account „parents“ mit Administratorrechten hinzugefügt. Diesem wird als Standardpassword „linux-bildung2026“ gesetzt.

Dieses Passwort kann anschließend an die Eltern weitergegeben werden, damit sie beispielsweise das von OSOS-Austria stammende Tool „Parental Control“ – eine neue Möglichkeit zur Umsetzung von Kinderschutzmaßnahmen unter Linux – installieren können. In einem weiteren Beitrag setzten wir das auch per ansible-pull um und erklären die notwendigen Schritte.

    
- hosts: all
  become: yes
  tasks:
    - name: Ensure sudo group exists (Debian)
      ansible.builtin.group:
        name: sudo
        state: present        

    - name: Create admin user with sudo group
      ansible.builtin.user:
        name: parents
        comment: Ansible‑managed admin user
        shell: /bin/bash
        home: /home/parents
        createhome: yes
        groups: sudo
        append: yes
        password: "{{ 'linux-bildung2026' | password_hash('sha512') }}"

 

Man kann Aufgaben auch auf mehrere Dateien aufteilen. Damit bleiben die .yml Dateien überschaubar und die Tasks mit entsprechenden Dateinamen rasch auffindbar.

Das ganze Skript findet sich auf Codeberg.org unter https://codeberg.org/linux-bildung/ansible-pull-demo.git

Der Cronjob wird mit „crontab -e“ eingetragen und sieht wie folgt aus

@reboot sleep 60 && ansible-pull -i "localhost" -d /var/lib/ansible/local -U https://codeberg.org/linux-bildung/ansible-pull-demo.git /var/log/ansible-pull.log 2>&1

Referenzen

[1] Mehr zu Ansible

https://blog.doenselmann.com/ansible-best-practices-dos-and-donts
https://docs.ansible.com/projects/ansible/latest/installation_guide/intro_installation.html#managed-node-requirements
https://www.linux-magazin.de/ausgaben/2023/03/ansible-tricks/
https://codeberg.org/linux-bildung/ansible-pull-demo.git

Image by Pete Linforth from Pixabay

Kategorien: AllgemeinHowToTools

0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert