Die Gewinner des Frühlingswettbewerbs
Die Gewinner des Frühlingswettbewerbs vom 15.03.2024 bis zum 30.06.2024 stehen fest. Der Erstplatzierte erhält ein NitroTablet von Nitrokey.


Die Gewinner des Frühlingswettbewerbs vom 15.03.2024 bis zum 30.06.2024 stehen fest. Der Erstplatzierte erhält ein NitroTablet von Nitrokey.


Die offizielle Distribution für den Mini-Computer Raspberry Pi wartet in seiner neuen Version neben Fehlerkorrekturen auch mit vielen kleinen Änderungen auf.
Das extrem schlanke Live-System auf Debian-Basis bringt zahlreiche vorinstallierte Werkzeuge zur Systempflege und Rettung mit.
cURL wird oft unbedacht eingesetzt, indem darauf basierende Befehle auf GitHub und anderswo kopiert und ausgeführt werden. Um dieses Sicherheitsrisiko abzuschwächen, liefert Debian cURL jetzt mit HTTP/3 aus.
Auch nach der Veröffentlichung von Plasma 6.1 gönnen sich die Entwickler bei KDE keine Pause und arbeiten bereits fleißig an der Fehlerbereinigung sowie an neuen Funktionen für Plasma 6.2
In diesem Beitrag gebe ich einige Beispiele mit Erklärungen zu Ansible Conditionals, welche mir in der Dokumentation fehlen. Dieser Artikel dient mir zur Erinnerung und mag Einsteigern helfen, ein besseres Verständnis der Bedingung is defined zu gewinnen.
Wird in einem Task eine Variable verwendet, welche nicht definiert ist, bricht Ansible die Verarbeitung eines Playbooks mit einem Fehler ab. Der folgende Code-Block zeigt ein einfaches Playbook mit anschließender Ausgabe des Playbooklaufs, um dies zu verdeutlichen. Der Task beinhaltet dabei bereits eine Bedingung. Er soll nur dann ausgeführt werden, wenn die Variable my_var den Wert Hello world! enthält.
]$ cat test_conditionals.yml
---
- name: Play around with conditionals
hosts: localhost
gather_facts: false
tasks:
- name: >-
When all conditionals are met, print the variable value using
ansible.builtin.debug
when:
- my_var == "Hello world!"
ansible.builtin.debug:
var: my_var
]$ ansible-playbook -i hosts test_conditionals.yml
PLAY [Play around with conditionals] *******************************************
TASK [When all conditionals are met, print the variable value using ansible.builtin.debug] ***
fatal: [localhost]: FAILED! => {"msg": "The conditional check 'my_var == \"Hello world!\"' failed. The error was: error while evaluating conditional (my_var == \"Hello world!\"): 'my_var' is undefined. 'my_var' is undefined\n\nThe error appears to be in '/home/tronde/ansible/test_conditionals.yml': line 7, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n tasks:\n - name: >-\n ^ here\n"}
PLAY RECAP *********************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
Der Text 'my_var' is undefined in obiger Fehlerausgabe benennt den Grund des Scheiterns.
Nun gibt es Fälle, in denen Tasks, welche undefinierte Variablen enthalten, nicht zum Abbruch des gesamten Playbooks führen sollen. Stattdessen soll der betroffene Task einfach übersprungen werden. Dies erreicht man mit der Bedingung `is defined`. Der nächste Code-Block liefert wieder ein Beispiel dazu.
]$ cat test_conditionals.yml
---
- name: Play around with conditionals
hosts: localhost
gather_facts: false
tasks:
- name: >-
When all conditionals are met, print the variable value using
ansible.builtin.debug
when:
- my_var is defined
- my_var == "Hello world!"
ansible.builtin.debug:
var: my_var
]$ ansible-playbook -i hosts test_conditionals.yml
PLAY [Play around with conditionals] *******************************************
TASK [When all conditionals are met, print the variable value using ansible.builtin.debug] ***
skipping: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
Der Task mit der undefinierten Variable wurde übersprungen (skipped) und das Playbook erfolgreich beendet.
Im nächsten Beispiel habe ich die Variable my_var im Playbook definiert und den passenden Wert zugewiesen.
]$ cat test_conditionals.yml
---
- name: Play around with conditionals
hosts: localhost
gather_facts: false
vars:
my_var: Hello world!
tasks:
- name: >-
When all conditionals are met, print the variable value using
ansible.builtin.debug
when:
- my_var is defined
- my_var == "Hello world!"
ansible.builtin.debug:
var: my_var
]$ ansible-playbook -i hosts test_conditionals.yml
PLAY [Play around with conditionals] *******************************************
TASK [When all conditionals are met, print the variable value using ansible.builtin.debug] ***
ok: [localhost] => {
"my_var": "Hello world!"
}
PLAY RECAP *********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Das war auch schon alles für heute. Ihr seht, es ist keine Hexerei. Mir hilft es, die Bedeutung von is defined zu erinnern, wenn ich es einmal aufgeschrieben habe.
Zum Ende gibt es noch einen Code-Block, der zeigt, dass dies auch mit Dictionaries funktioniert:
]$ cat test_conditionals.yml
---
- name: Play around with conditionals
hosts: localhost
gather_facts: false
vars:
my_dict:
my_var: Hello world!
tasks:
- name: >-
When all conditionals are met, print the variable value using
ansible.builtin.debug
when:
- my_dict.my_var is defined
- my_dict.my_var == "Hello world!"
ansible.builtin.debug:
var: my_dict.my_var
]$ ansible-playbook -i hosts test_conditionals.yml
PLAY [Play around with conditionals] *******************************************
TASK [When all conditionals are met, print the variable value using ansible.builtin.debug] ***
ok: [localhost] => {
"my_dict.my_var": "Hello world!"
}
PLAY RECAP *********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
In der Kategorie Ansible findet ihr weitere Artikel rund um Ansible. Viel Spaß beim Stöbern.
FOSS News in Woche 27: Von Farben bis zum neuen ARM ISO


Joplin ist mit vielen Neuerungen und Verbesserungen in Version 3.0 erschienen. Neben einem Papierkorb gibt es nun auch Plugins in den Mobile-Apps.
Ein neuer adminForge Service kann ab sofort genutzt werden.
SafeTwitch ist ein datenschutzorientiertes und quelloffenes Frontend für Twitch.
SafeTwitch ist ein datenschutzorientiertes und quelloffenes Frontend für Twitch.
https://safetwitch.adminforge.de
Features:
Software: SafeTwitch
Euer adminForge Team
Unterstütze unsere Arbeit mit einer Spende und diskutiere in unserem Chat mit. |
by adminForge.
Ein neuer adminForge Service kann ab sofort genutzt werden.
Alternatives Frontend für die Google, DeepL, DuckDuckGo Übersetzung.
Alternatives Frontend für die Google, DeepL, DuckDuckGo Übersetzung.
Features:
Software: Mozhi Translate
Euer adminForge Team
Unterstütze unsere Arbeit mit einer Spende und diskutiere in unserem Chat mit. |
by adminForge.
Mithilfe von SSH kannst du eine sichere Shell-Verbindung über das Netzwerk aufbauen. Mit dem entsprechenden Wissen kannst du deinen SSH-Zugriff zusätzlich absichern.



Das Ubuntu 22.04 Buch für Einsteiger Seit Juni 2024 ist das neue Buch von Linux Autor Josef Moser über Ubuntu 24.04 LTS erhältlich. Wie immer handelt es sich dabei um eine sogenannte Schnellanleitung. Das bedeutet, dass es sich inhaltlich hauptsächlich an Linux Einsteiger richtet. Ubuntu zählt zu den beliebtesten Linux Betriebssystemen. Alle zwei Jahre veröffentlicht… Weiterlesen Ubuntu 24.04 Buch von Josef Moser veröffentlicht
Der Beitrag Ubuntu 24.04 Buch von Josef Moser veröffentlicht erschien zuerst auf Die Seite für LINUX UMSTEIGER.
Der 6. Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


In meinem Proxmox-Cluster habe ich eine Node, auf der ein Linux-Container als Proxmox Backup Server läuft.


EndeavourOS, eine beliebte, auf Arch Linux basierende Linux-Distribution feiert ihr fünfjähriges Bestehen. Mit dieser Ausgabe kehr auch der zuvor eingestellte ARM-Zweig wieder zurück.
Für unsere 25te Episode des Software Freedom Podcast freuen wir uns Hannes Mehnert, einer der MirageOS Hauptentwickler, begrüßen zu dürfen. Zusammen mit Matthias Kirschner, President der FSFE, spricht Hannes über MirageOS, OCaml und Modulare Systeme. Diese Folge gibt einen Überblick von den Grundlagen bis zur Zukunft von MirageOS.
Als einer der Hauptentwickler vonMirageOS hat Hannes Mehrnert ein umfangreiches Verständnis der Funktionsweise des Programmierrahmens und seiner Module. Er und Matthias sprechen über die Verwendung von MirageOS, seine Finanzierung und wie du MirageOS als Freiwillige*r unterstützen kannst. Außerdem sprechen beide über die funktionale Programmiersprache OCaml, die Grundlage auf der alles aufgebaut ist. Höre dir eine spannende Folge mit Hannes und Matthias an, während du mehr über MirageOS, modulare Systeme, reproduzierbare Builds und funktionale Programmierung lernst.
Die perfekte Episode für alle, die gerne mehr über MirageOS und modulare Systeme lernen wollen!
Show notes
Wenn dir diese Folge gefallen hat und du unsere kontinuierliche Arbeit für Softwarefreiheit unterstützen möchtest, hilf uns bitte mit einer Spende.
Ein kleines Videoexperiment zum Thema: Quellcode-Öffnung von Videospielen.


Die 93. Folge des Podcasts ‘Captain it’s Wednesday’ widmet sich dem Projekt FOSSWELT, dass wir kürzlich vorgestellt haben. Darüber spreche ich mit Ralf Hersel.
Die auf Debian basierende Distribution Nitrux liegt in einer neuen Version vor, die zahlreiche kleine Änderungen mitbringt.