Test Repo für Ansible Semaphore
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

---
- 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