You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.4 KiB
65 lines
2.4 KiB
---
|
|
- 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
|