Bestand aus ~/ansible-schule uebernehmen (Push-Setup, Stand Feb 2026)

Playbooks, Inventory, update-ips.sh, first-boot-setup.sh und Doku
unveraendert aus dem alten git-losen Ordner uebernommen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-13 13:11:24 +02:00
commit bd4384c36f
12 changed files with 706 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
# Software auf allen Rechnern installieren
#
# Verwendung:
# ansible-playbook playbooks/install-software.yml
#
# Oder einzelnes Paket:
# ansible-playbook playbooks/install-software.yml -e "packages=['firefox','vlc']"
#
---
- name: Software installieren
hosts: clients
become: yes
vars:
# Standard-Pakete die installiert werden sollen
packages:
- htop
- git
- curl
- vim
# Weitere Pakete hier hinzufuegen
tasks:
- name: APT Cache aktualisieren
apt:
update_cache: yes
cache_valid_time: 3600
- name: Pakete installieren
apt:
name: "{{ packages }}"
state: present
register: install_result
- name: Installierte Pakete anzeigen
debug:
msg: "Installiert: {{ packages | join(', ') }}"

17
playbooks/ping.yml Normal file
View File

@@ -0,0 +1,17 @@
# Test-Playbook: Pruefen ob alle Rechner erreichbar sind
---
- name: Ping alle Laptops
hosts: schul_laptops
gather_facts: no
tasks:
- name: Ping
ping:
- name: Zeige Hostname
command: hostname
register: result
changed_when: false
- name: Ausgabe
debug:
msg: "{{ inventory_hostname }} antwortet als {{ result.stdout }}"

27
playbooks/reboot.yml Normal file
View File

@@ -0,0 +1,27 @@
# Neustart aller Clients
#
# Verwendung:
# ansible-playbook playbooks/reboot.yml
#
# Nur bestimmte Rechner:
# ansible-playbook playbooks/reboot.yml --limit laptop05,laptop06
#
---
- name: Rechner neustarten
hosts: clients
become: yes
tasks:
- name: Neustart durchfuehren
reboot:
reboot_timeout: 300
msg: "Neustart durch Ansible"
- name: Warten bis Rechner wieder erreichbar
wait_for_connection:
delay: 10
timeout: 300
- name: Bestaetigung
debug:
msg: "{{ inventory_hostname }} ist wieder online"

View File

@@ -0,0 +1,24 @@
# Hostname setzen
#
# Verwendung:
# ansible-playbook playbooks/set-hostname.yml --limit laptop05 -e "new_hostname=laptop05"
#
---
- name: Hostname setzen
hosts: all
become: yes
tasks:
- name: Hostname setzen
hostname:
name: "{{ new_hostname | default(inventory_hostname) }}"
- name: /etc/hosts aktualisieren
lineinfile:
path: /etc/hosts
regexp: '^127\.0\.1\.1'
line: "127.0.1.1\t{{ new_hostname | default(inventory_hostname) }}"
- name: Neuer Hostname
debug:
msg: "Hostname gesetzt auf: {{ new_hostname | default(inventory_hostname) }}"

31
playbooks/update.yml Normal file
View File

@@ -0,0 +1,31 @@
# System-Update auf allen Rechnern
---
- name: System Update
hosts: clients # Ohne den Controller
become: yes
tasks:
- name: APT Cache aktualisieren
apt:
update_cache: yes
cache_valid_time: 3600
- name: Alle Pakete upgraden
apt:
upgrade: safe
register: upgrade_result
- name: Zeige aktualisierte Pakete
debug:
msg: "{{ upgrade_result.stdout_lines | default(['Keine Updates']) }}"
when: upgrade_result.stdout_lines is defined
- name: Pruefen ob Neustart noetig
stat:
path: /var/run/reboot-required
register: reboot_required
- name: Hinweis wenn Neustart noetig
debug:
msg: "ACHTUNG: {{ inventory_hostname }} benoetigt einen Neustart!"
when: reboot_required.stat.exists