# netconfig for debian/ubuntu if [ -e /etc/network/interfaces ]; then echo "# network-config" > /etc/network/interfaces echo "auto lo" >> /etc/network/interfaces echo "iface lo inet loopback" >> /etc/network/interfaces echo "" >> /etc/network/interfaces fi # netconfig with netplan if [ -e /etc/netplan ]; then rm -rf /etc/netplan/* > /dev/null 2>&1 echo "# network-config" > /etc/netplan/50-network.yaml echo "network:" >> /etc/netplan/50-network.yaml echo " version: 2" >> /etc/netplan/50-network.yaml echo " ethernets:" >> /etc/netplan/50-network.yaml fi {if $mac} # netconfig with scripts if [ -d /sys/class/net ]; then cd /sys/class/net for device in *; do # all interface config if [ $(cat $device/address) = '{$mac}' ] ; then if [ -d /etc/sysconfig/network-scripts ]; then ifdown $device > /dev/null 2>&1 echo "# network-config" > /etc/sysconfig/network-scripts/ifcfg-$device echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "BOOTPROTO=static" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "DEFROUTE=yes" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "DEVICE=$device" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-$device {if $ip_info.ipv6} echo "IPV6ADDR={$ip_info.ip}/{$ip_info.cidr}" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "IPV6_DEFAULTGW={$ip_info.gateway}" >> /etc/sysconfig/network-scripts/ifcfg-$device {else} echo "IPADDR={$ip_info.ip}" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "NETMASK={$ip_info.mask}" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "GATEWAY={$ip_info.gateway}" >> /etc/sysconfig/network-scripts/ifcfg-$device {/if} {if $ip_list}{foreach from=$ip_list item=m name=f} {if $m.ipv6} echo "IPV6ADDR_SECONDARIES=\"{$m.ip}/{$m.cidr}\"" >> /etc/sysconfig/network-scripts/ifcfg-$device {else} echo "IPADDR{$smarty.foreach.f.index+1}={$m.ip}" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "NETMASK{$smarty.foreach.f.index+1}={$m.mask}" >> /etc/sysconfig/network-scripts/ifcfg-$device {/if} {/foreach}{/if} {if $ip_info.ipv6} echo "IPV6INIT=yes" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "IPV6_AUTOCONF=no" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "IPV6_FORCE_ACCEPT_RA=no" >> /etc/sysconfig/network-scripts/ifcfg-$device {/if} echo "DNS1={$dns1}" >> /etc/sysconfig/network-scripts/ifcfg-$device echo "DNS2={$dns2}" >> /etc/sysconfig/network-scripts/ifcfg-$device fi if [ -e /etc/network/interfaces ]; then echo "auto $device" >> /etc/network/interfaces {if $ip_info.ipv6} echo "iface $device inet6 static" >> /etc/network/interfaces echo " address {$ip_info.ip}/{$ip_info.cidr}" >> /etc/network/interfaces echo " gateway {$ip_info.gateway}" >> /etc/network/interfaces echo "" >> /etc/network/interfaces {else} echo "iface $device inet static" >> /etc/network/interfaces echo " address {$ip_info.ip}" >> /etc/network/interfaces echo " netmask {$ip_info.mask}" >> /etc/network/interfaces echo " gateway {$ip_info.gateway}" >> /etc/network/interfaces echo "" >> /etc/network/interfaces {/if} {if $ip_list}{foreach from=$ip_list item=m name=f} {if $m.ipv6} echo "iface $device:{$smarty.foreach.f.index+1} inet6 static" >> /etc/network/interfaces echo " address {$m.ip}/{$m.cidr}" >> /etc/network/interfaces echo "" >> /etc/network/interfaces {else} echo "auto $device:{$smarty.foreach.f.index+1}" >> /etc/network/interfaces echo "iface $device:{$smarty.foreach.f.index+1} inet static" >> /etc/network/interfaces echo " address {$m.ip}" >> /etc/network/interfaces echo " netmask {$m.mask}" >> /etc/network/interfaces echo "" >> /etc/network/interfaces {/if} {/foreach}{/if} fi if [ -e /etc/netplan ]; then echo " $device:" >> /etc/netplan/50-network.yaml echo " addresses: [{$ip_info.ip}/{$ip_info.cidr}{if $ip_list}{foreach from=$ip_list item=m},{$m.ip}/{$m.cidr}{/foreach}{/if}]" >> /etc/netplan/50-network.yaml {if $ip_info.ipv6} echo " gateway6: {$ip_info.gateway}" >> /etc/netplan/50-network.yaml {else} echo " gateway4: {$ip_info.gateway}" >> /etc/netplan/50-network.yaml {/if} echo " match:" >> /etc/netplan/50-network.yaml echo " macaddress: {$mac}" >> /etc/netplan/50-network.yaml echo " nameservers:" >> /etc/netplan/50-network.yaml echo " addresses: [{$dns1},{$dns2}]" >> /etc/netplan/50-network.yaml netplan apply > /dev/null 2>&1 fi if [ -d /etc/systemd/network ]; then echo "[Match]" > /etc/systemd/network/$device echo "MACAddress={$mac}" >> /etc/systemd/network/$device echo "[Network]" >> /etc/systemd/network/$device echo "Address={$ip_info.ip}/{$ip_info.cidr}" >> /etc/systemd/network/$device {if $ip_list}{foreach from=$ip_list item=m} echo "Address={$m.ip}/{$m.cidr}" >> /etc/systemd/network/$device {/foreach}{/if} echo "Gateway={$ip_info.gateway}" >> /etc/systemd/network/$device echo "DNS={$dns1}" >> /etc/systemd/network/$device echo "DNS={$dns2}" >> /etc/systemd/network/$device fi fi done echo "nameserver {$dns1}" > /etc/resolv.conf echo "nameserver {$dns2}" >> /etc/resolv.conf fi {/if} {if $mac2 && $ip_private} for device in *; do # all interface2 config {literal} device2=`ls /sys/class/net/ | awk '{if(NR==2) print $0}'` {/literal} if [ $(cat $device2/address) = '{$mac2}' ] ; then if [ -d /etc/sysconfig/network-scripts ]; then ifdown $device2 > /dev/null 2>&1 echo "# network-config" > /etc/sysconfig/network-scripts/ifcfg-$device2 echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-$device2 echo "BOOTPROTO=static" >> /etc/sysconfig/network-scripts/ifcfg-$device2 echo "DEFROUTE=yes" >> /etc/sysconfig/network-scripts/ifcfg-$device2 echo "DEVICE=$device2" >> /etc/sysconfig/network-scripts/ifcfg-$device2 echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-$device2 {if $ip_private.ipv6} echo "IPV6ADDR={$ip_private.ip}/{$ip_private.cidr}" >> /etc/sysconfig/network-scripts/ifcfg-$device2 {else} echo "IPADDR={$ip_private.ip}" >> /etc/sysconfig/network-scripts/ifcfg-$device2 echo "NETMASK={$ip_private.mask}" >> /etc/sysconfig/network-scripts/ifcfg-$device2 {/if} fi fi done if [ -e /etc/network/interfaces ]; then echo "auto $device2" >> /etc/network/interfaces echo "iface $device2 inet static" >> /etc/network/interfaces {if $ip_private.ipv6} echo " address {$ip_private.ip}/{$ip_private.cidr}" >> /etc/network/interfaces {else} echo " address {$ip_private.ip}" >> /etc/network/interfaces echo " netmask {$ip_private.mask}" >> /etc/network/interfaces {/if} echo "" >> /etc/network/interfaces fi if [ -e /etc/netplan ]; then echo " $device2:" >> /etc/netplan/50-network.yaml echo " addresses: [{$ip_private.ip}/{$ip_private.cidr}]" >> /etc/netplan/50-network.yaml echo " match:" >> /etc/netplan/50-network.yaml echo " macaddress: {$mac2}" >> /etc/netplan/50-network.yaml echo " nameservers:" >> /etc/netplan/50-network.yaml echo " addresses: [{$dns1},{$dns2}]" >> /etc/netplan/50-network.yaml netplan apply > /dev/null 2>&1 fi if [ -d /etc/systemd/network ]; then echo "[Match]" > /etc/systemd/network/$device2 echo "MACAddress={$mac2}" >> /etc/systemd/network/$device2 echo "[Network]" >> /etc/systemd/network/$device2 echo "Address={$ip_private.ip}/{$ip_private.cidr}" >> /etc/systemd/network/$device2 echo "DNS={$dns1}" >> /etc/systemd/network/$device2 echo "DNS={$dns2}" >> /etc/systemd/network/$device2 fi {/if}