100 lines
3.0 KiB
YAML
Executable File
100 lines
3.0 KiB
YAML
Executable File
---
|
|
- name: HEIMLAN NFS Mount stabil und robust
|
|
hosts: all
|
|
become: true
|
|
gather_facts: true
|
|
|
|
vars:
|
|
mount_path: /mnt/HEIMLAN
|
|
nfs_export: "/volume1/HEIMLAN"
|
|
|
|
tasks:
|
|
|
|
# ------------------------------------------------------------
|
|
# 1. NFS Client Installation
|
|
# ------------------------------------------------------------
|
|
|
|
- name: Debian/Ubuntu NFS Client installieren
|
|
apt:
|
|
name: nfs-common
|
|
state: present
|
|
update_cache: true
|
|
when: ansible_os_family == "Debian"
|
|
|
|
- name: RedHat NFS Client installieren
|
|
yum:
|
|
name: nfs-utils
|
|
state: present
|
|
when: ansible_os_family == "RedHat"
|
|
|
|
# ------------------------------------------------------------
|
|
# 2. NFS Server Mapping (robust, kein Fail bei unbekannten Netzen)
|
|
# ------------------------------------------------------------
|
|
|
|
- name: NFS Server bestimmen
|
|
set_fact:
|
|
nfs_server: >-
|
|
{% if ansible_default_ipv4.address.startswith('9.99') %}
|
|
9.99.50.20
|
|
{% else %}
|
|
192.168.1.230
|
|
{% endif %}
|
|
|
|
- name: Debug Mapping
|
|
debug:
|
|
msg: "Host {{ ansible_default_ipv4.address }} -> NFS Server {{ nfs_server }}"
|
|
|
|
# ------------------------------------------------------------
|
|
# 3. Mountpoint sicherstellen
|
|
# ------------------------------------------------------------
|
|
|
|
- name: Mountpoint erstellen
|
|
file:
|
|
path: "{{ mount_path }}"
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
# ------------------------------------------------------------
|
|
# 4. Alte kaputte HEIMLAN Einträge entfernen
|
|
# ------------------------------------------------------------
|
|
|
|
- name: Alte HEIMLAN fstab Einträge entfernen
|
|
lineinfile:
|
|
path: /etc/fstab
|
|
state: absent
|
|
regexp: 'HEIMLAN'
|
|
|
|
# ------------------------------------------------------------
|
|
# 5. Korrekten fstab Eintrag schreiben (kein Whitespace Fehler)
|
|
# ------------------------------------------------------------
|
|
|
|
- name: fstab Eintrag setzen (sauber)
|
|
lineinfile:
|
|
path: /etc/fstab
|
|
state: present
|
|
create: true
|
|
insertafter: EOF
|
|
line: "{{ nfs_server | trim }}:{{ nfs_export | trim }} {{ mount_path }} nfs rw,hard,intr,noatime,_netdev,vers=4 0 0"
|
|
regexp: '^{{ nfs_server | trim | regex_escape() }}:{{ nfs_export | trim | regex_escape() }}'
|
|
|
|
# ------------------------------------------------------------
|
|
# 6. Mount ausführen
|
|
# ------------------------------------------------------------
|
|
|
|
- name: Mount aktivieren
|
|
mount:
|
|
path: "{{ mount_path }}"
|
|
state: mounted
|
|
register: mount_result
|
|
failed_when: false
|
|
|
|
# ------------------------------------------------------------
|
|
# 7. Ergebnis
|
|
# ------------------------------------------------------------
|
|
|
|
- name: Status anzeigen
|
|
debug:
|
|
msg:
|
|
- "Server: {{ nfs_server }}"
|
|
- "Mount Path: {{ mount_path }}"
|
|
- "Mount changed: {{ mount_result.changed | default(false) }}" |