network: version: 2 ethernets: id0: match: macaddress: "{{ virtualization_mac_address }}" {% set has_static = vm_ip is defined and vm_ip | length %} {% set dns_value = vm_dns | default('') %} {% set dns_list_raw = dns_value if dns_value is iterable and dns_value is not string else dns_value.split(',') %} {% set dns_list = dns_list_raw | map('trim') | reject('equalto', '') | list %} {% set search_value = vm_dns_search | default('') %} {% set search_list_raw = search_value if search_value is iterable and search_value is not string else search_value.split(',') %} {% set search_list = search_list_raw | map('trim') | reject('equalto', '') | list %} {% if has_static %} addresses: - "{{ vm_ip }}/{{ vm_nms | default(24) }}" {% if vm_gw is defined and vm_gw | length %} gateway4: "{{ vm_gw }}" {% endif %} {% else %} dhcp4: true {% if (vm_dns is defined and vm_dns | length) or (vm_dns_search is defined and vm_dns_search | length) %} dhcp4-overrides: {% if vm_dns is defined and vm_dns | length %} use-dns: false {% endif %} {% if vm_dns_search is defined and vm_dns_search | length %} use-domains: false {% endif %} {% endif %} {% endif %} {% if dns_list or search_list %} nameservers: {% if dns_list %} addresses: {% for dns in dns_list %} - "{{ dns }}" {% endfor %} {% endif %} {% if search_list %} search: {% for search in search_list %} - "{{ search }}" {% endfor %} {% endif %} {% endif %}