--- - name: IP von DHCP auf Static ändern basierend auf individuellen envs Dateien hosts: all become: true vars: interface_name: 'Wired\ connection\ 1' tasks: - name: Zeige den Wert der Variable an debug: var: interface_name - name: Überprüfe, ob NetworkManager installiert ist command: dpkg-query -l network-manager register: dpkg_query_result ignore_errors: yes - name: Setze statische IP wenn NetworkManager installiert ist block: - name: Deaktiviere DHCP im NetworkManager command: "nmcli connection modify {{ interface_name }} ipv4.method manual ipv4.addresses '{{ static_ip }}/{{ netmask | ipaddr('prefix') }}' ipv4.gateway '{{ gateway }}' ipv4.dns '{{ dns_servers | join(',') }}'" - name: Starte NetworkManager neu service: name: NetworkManager state: restarted - debug: msg: "{{ netmask | ipaddr('prefix') }}" when: dpkg_query_result.rc == 0 - name: Setze statische IP wenn NetworkManager NICHT installiert ist block: - name: Get the current DHCP interface name shell: grep -Po 'iface \K[^ ]+' /etc/network/interfaces | grep -v 'lo' register: dhcp_interface changed_when: false - name: Set interface name variable set_fact: interface_name: "{{ dhcp_interface.stdout_lines[0] }}" - debug: msg: "{{ interface_name }}" # - name: Configure interface for static IP (rest of the tasks) # ansible.builtin.lineinfile: # path: /etc/network/interfaces # regexp: '^iface {{ interface_name }} inet dhcp' # line: 'iface {{ interface_name }} inet static' # backup: yes # - name: Sichere die aktuelle Netzwerkkonfiguration # copy: # src: /etc/network/interfaces # dest: /etc/network/interfaces.backup # remote_src: true - name: Setze statische IP in /etc/network/interfaces blockinfile: path: /etc/network/interfaces block: | iface {{ interface_name }} inet static address {{ static_ip }} netmask {{ netmask2 }} gateway {{ gateway }} dns-nameservers {{ dns_servers | join(' ') }} - name: Starte Netzwerk neu command: systemctl restart networking when: dpkg_query_result.rc != 0