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:
37
playbooks/install-software.yml
Normal file
37
playbooks/install-software.yml
Normal 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
17
playbooks/ping.yml
Normal 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
27
playbooks/reboot.yml
Normal 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"
|
||||
24
playbooks/set-hostname.yml
Normal file
24
playbooks/set-hostname.yml
Normal 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
31
playbooks/update.yml
Normal 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
|
||||
Reference in New Issue
Block a user