From d05b5f04c92034eae1675dc8102247a3cc3315f7 Mon Sep 17 00:00:00 2001 From: baigk Date: Tue, 4 Aug 2015 22:21:43 -0400 Subject: delete the windows newline character JIRA: COMPASS-7 Change-Id: Iffd549877b8cc50a995bdc59adf1f05c0fcb1d5e Signed-off-by: baigk --- .../snippets/preseed_post_install_network_config | 1260 ++++++++++---------- 1 file changed, 630 insertions(+), 630 deletions(-) (limited to 'deploy/adapters/cobbler/snippets/preseed_post_install_network_config') diff --git a/deploy/adapters/cobbler/snippets/preseed_post_install_network_config b/deploy/adapters/cobbler/snippets/preseed_post_install_network_config index 177769cf..3e577830 100644 --- a/deploy/adapters/cobbler/snippets/preseed_post_install_network_config +++ b/deploy/adapters/cobbler/snippets/preseed_post_install_network_config @@ -1,630 +1,630 @@ -## Start post_install_network_config generated code -#if $getVar('promisc_nics', '') != "" - #set promisc_interfaces = [promisc.strip() for promisc in $promisc_nics.split(',') if promisc.strip()] -#else - #set promisc_interfaces = [] -#end if -#if $hostname != "" -# set the hostname -echo "$hostname" > /etc/hostname -/bin/hostname $hostname -#end if - -#set osversion = $getVar("os_version","") - -$SNIPPET('preseed_hosts') - -#set $num_ns_search = $len($name_servers_search) -#if $num_ns_search > 0 -sed -i -e "/^search /d" /etc/resolv.conf -echo -n "search " >>/etc/resolv.conf - #for $nameserversearch in $name_servers_search -echo -n "$nameserversearch " >>/etc/resolv.conf - #end for -echo "" >>/etc/resolv.conf -#end if - -#set $num_ns = $len($name_servers) -#if $num_ns > 0 -sed -i -e "/^nameserver /d" /etc/resolv.conf - #for $nameserver in $name_servers -echo "nameserver $nameserver" >>/etc/resolv.conf - #end for -#end if - -echo '' > /tmp/network_log - -# get physical interfaces -physical_interfaces="" -for physical_interface in \$(ip -o link | cut -d: -f2 | grep -v lo); do - echo "processing physical interface \${physical_interface}" >> /tmp/network_log - if [ -z "\${physical_interfaces}" ]; then - physical_interfaces="\${physical_interface}" - else - physical_interfaces="\${physical_interfaces} \${physical_interface}" - fi - eval "physical_interface_\${physical_interface}=\${physical_interface}" -done -echo "physical interfaces: \${physical_interfaces}" >> /tmp/network_log - -# map physical interface to mac address -mac_names="" -for physical_interface in \${physical_interfaces}; do - set \$(ip link show \${physical_interface}) -#if $osversion == "trusty" - mac=\$(echo \$@ | cut -d' ' -f17) -#else - mac=\$(echo \$@ | cut -d' ' -f13) -#end if - mac_name=\$(echo \${mac} |tr 'a-z' 'A-Z' | tr ':' '_') - if [ -z "\${mac_name}" ]; then - mac_names="\${mac_name}" - else - mac_names="\${mac_names} \${mac_name}" - fi - echo "mapping physical interface \${physical_interface} to mac \${mac}" >> /tmp/network_log - eval "physical_interface_mac_\${physical_interface}=\$mac" - eval "physical_mac_interface_\${mac_name}=\${physical_interface}" - eval "mac_name_\${mac_name}=\$mac" -done - -echo "list physical interfaces to mac" >> /tmp/network_log -for physical_interface in \${physical_interfaces}; do - eval "mac=\\${physical_interface_mac_\${physical_interface}}" - echo "physical interface to mac: \${physical_interface} => \${mac}" >> /tmp/network_log -done - -echo "list mac to physical interface mapping" >> /tmp/network_log -for mac_name in \${mac_names}; do - eval "mac=\\${mac_name_\${mac_name}}" - eval "physical_interface=\\${physical_mac_interface_\${mac_name}}" - echo "mac to physical interface: \${mac} => \${physical_interface}" >> /tmp/network_log -done - -logical_interfaces="" -#set ikeys = $interfaces.keys() -#import re -#set $vlanpattern = $re.compile("([a-zA-Z0-9]+)[\.][0-9]+") -#set $subinterfacepattern = $re.compile("([a-zA-Z0-9]+)[:][0-9]+") -#set $numbondingdevs = 0 -#for $iname in $ikeys - #set $idata = $interfaces[$iname] - #set $mac = $idata.get("mac_address", "").upper() - #set $interface_type = $idata.get("interface_type", "").lower() - #if $interface_type in ("master","bond","bonded_bridge_slave") - #set $numbondingdevs += 1 - #end if - #if $interface_type in ("master","bond","bridge","bonded_bridge_slave") - #continue - #end if - #if $vlanpattern.match($iname) - #set $interface_matched = $vlanpattern.match($iname) - #set $interface_name = $interface_matched.group(1) -logical_interface=${interface_name} - #elif $subinterfacepattern.match($iname) - #set $interface_matched = $subinterfacepattern.match($iname) - #set $interface_name = $interface_matched.group(1) -logical_interface=${interface_name} - #else -logical_interface=$iname - #end if -if [ -z "\${logical_interfaces}" ]; then - logical_interfaces="\${logical_interface}" -else - logical_interfaces="\${logical_interfaces} \${logical_interface}" -fi -eval "logical_interface_\${logical_interface}=\${logical_interface}" - #if $mac != "" - #set mac_name = $mac.replace(':', '_') -physical_interface=\${physical_mac_interface_${mac_name}} -eval "logical_interface_mapping_\${logical_interface}=\${physical_interface}" -if [ ! -z "\${physical_interface}" ]; then - eval "physical_interface_mapping_\${physical_interface}=\${logical_interface}" -fi - #else -eval "physical_interface=\\${logical_interface_mapping_\${logical_interface}}" -if [ -z "\${physical_interface}" ]; then - eval "logical_interface_mapping_\${logical_interface}=" -fi - #end if -#end for - -echo "logical interfaces: \${logical_interfaces}" >> /tmp/network_log - -echo "finish mapping logical interfaces in network config to physical interfaces" >> /tmp/network_log -for key in \${logical_interfaces}; do - eval "physical_interface=\\${logical_interface_mapping_\${key}}" - echo "map logical interface \${key} to physical interface \${physical_interface}" >> /tmp/network_log -done -for key in \${physical_interfaces}; do - eval "logical_interface=\\${physical_interface_mapping_\${key}}" - echo "map physical interface \${key} to logical interface \${logical_interface}" >> /tmp/network_log -done - -# map unmapped logical interface to the same name physical interface -echo "mapping unmapped logical interfaces to the same name physical interfaces" >> /tmp/network_log -for logical_interface in \${logical_interfaces}; do - eval "physical_interface=\\${logical_interface_mapping_\${logical_interface}}" - if [ ! -z "\${physical_interface}" ]; then - echo "ignore logical interface \${logical_interface} where its physical interface is \${physical_interface}" >> /tmp/network_log - continue - fi - # check if the same name physical interface is mapped - eval "mapped_logical_interface=\\${physical_interface_mapping_\${logical_interface}}" - if [ ! -z "\${mapped_logical_interface}" ]; then - echo "ignore logical interface \${logical_interface} since the same name physical interface is mapped by logical interface \${mapped_logical_interface}" >> /tmp/network_log - continue - fi - # check if the same name physical interface exists - eval "mapped_logical_interface=\\${physical_interface_\${logical_interface}}" - if [ -z "\${mapped_logical_interface}" ]; then - echo "ignore logical interface \${logical_interface} since the same name physical interface does not exist" >> /tmp/network_log - continue - fi - eval "logical_interface_mapping_\${logical_interface}=\${logical_interface}" - eval "physical_interface_mapping_\${logical_interface}=\${logical_interface}" - echo "set logical interface \${logical_interface} to the same physical interface" >> /tmp/network_log -done - -echo "finish mapping unmapped logical interfaces in network config to the same name physical interfaces" >> /tmp/network_log -for key in \${logical_interfaces}; do - eval "physical_interface=\\${logical_interface_mapping_\${key}}" - echo "map logical interface \${key} to physical interface \${physical_interface}" >> /tmp/network_log -done -for key in \${physical_interfaces}; do - eval "logical_interface=\\${physical_interface_mapping_\${key}}" - echo "map physical interface \${key} to logical interface \${logical_interface}" >> /tmp/network_log -done - - -unset_physical_interfaces="" -echo "get unset physical interfaces from \${physical_interfaces}" >> /tmp/network_log -for physical_interface in \${physical_interfaces}; do - eval "logical_interface=\\${physical_interface_mapping_\${physical_interface}}" - if [ ! -z "\${logical_interface}" ]; then - echo "physical interface \${physical_interface} is already set to \${logical_interface}" >> /tmp/network_log - continue - fi - if [ -z "\${unset_physical_interfaces}" ]; then - unset_physical_interfaces="\${physical_interface}" - else - unset_physical_interfaces="\${unset_physical_interfaces} \${physical_interface}" - fi - eval "unset_physical_interface_\${physical_interface}=\${physical_interface}" -done -echo "unset physical interfaces \${unset_physical_interfaces}" >> /tmp/network_log - -unset_logical_interfaces="" -echo "get unset logical interfaces from \${logical_interfaces}" >> /tmp/network_log -for logical_interface in \${logical_interfaces}; do - eval "physical_interface=\\${logical_interface_mapping_\${logical_interface}}" - if [ ! -z "\${physical_interface}" ]; then - echo "logical interface \${logical_interface} is already set to \${physical_interface}" >> /tmp/network_log - continue - fi - if [ -z "\${unset_logical_interfaces}" ]; then - unset_logical_interfaces="\${logical_interface}" - else - unset_logical_interfaces="\${unset_logical_interfaces} \${logical_interface}" - fi -done -echo "unset logical interfaces \${unset_logical_interfaces}" >> /tmp/network_log - -sorted_unset_physical_interfaces=\$(printf '%s\n' \${unset_physical_interfaces} | sort | xargs) -echo "sorted unset physical interfaces \${sorted_unset_physical_interfaces}" >> /tmp/network_log -sorted_unset_logical_interfaces=\$(printf '%s\n' \${unset_logical_interfaces} | sort | xargs) -echo "sorted unset logical interfaces \${sorted_unset_logical_interfaces}" >> /tmp/network_log - -# map unset logical interface to unset physical interface -echo "map unset logical interfaces \${sorted_unset_logical_interfaces} to unset physical interfaces \${sorted_unset_physical_interfaces}" >> /tmp/network_log -unset_logical_interfaces="" -for logical_interface in \${sorted_unset_logical_interfaces}; do - set \${sorted_unset_physical_interfaces} - physical_interface_num=\$#; - if [ \${physical_interface_num} -gt 0 ]; then - physical_interface=\$1 - shift 1 - sorted_unset_physical_interfaces="\$@" - echo "map unset logical interface \${logical_interface} to unset physical interface \${physical_interface}" >> /tmp/network_log - eval "physical_interface_mapping_\${physical_interface}=\${logical_interface}" - eval "logical_interface_mapping_\${logical_interface}=\${physical_interface}" - else - echo "remain unset logical interface \${logical_interface} since there is no remain unset physical interfaces" >> /tmp/network_log - if [ -z "\${unset_logical_interfaces}" ]; then - unset_logical_interfaces="\${logical_interface}" - else - unset_logical_interfaces="\${unset_logical_interfaces} \${logical_interface}" - fi - fi -done -sorted_unset_logical_interfaces=\${unset_logical_interfaces} -unset_physical_interfaces=\${sorted_unset_physical_interfaces} - -echo "finish mapping unmapped logical interfaces in network config to unmapped physical interfaces" >> /tmp/network_log -for key in \${logical_interfaces}; do - eval "physical_interface=\\${logical_interface_mapping_\${key}}" - echo "map logical interface \${key} to physical interface \${physical_interface}" >> /tmp/network_log -done -for key in \${physical_interfaces}; do - eval "logical_interface=\\${physical_interface_mapping_\${key}}" - echo "map physical interface \${key} to logical interface \${logical_interface}" >> /tmp/network_log -done - -echo "unset physical interfaces \${sorted_unset_physical_interfaces}" >> /tmp/network_log -echo "unset logical interfaces \${sorted_unset_logical_interfaces}" >> /tmp/network_log - -# map remaining unmapped logical interfaces -echo "map remaining unmapped logical interfaces" >> /tmp/network_log -if [ ! -z "\${sorted_unset_logical_interfaces}" ]; then - # get all available logical interfaces which the same name physical interface is not used - available_logical_interfaces="" - for logical_interface in \${logical_interfaces}; do - eval "mapped_logical_interface=\\${physical_interface_mapping_\${logical_interface}}" - if [ -z "\${mapped_logical_interface}" ]; then - eval "available_logical_interface_\${logical_interface}=\${logical_interface}" - if [ -z "\${available_logical_interfaces}" ]; then - available_logical_interfaces="\${logical_interface}" - else - available_logical_interfaces="\${available_logical_interfaces} \${logical_interface}" - fi - else - echo "ignore logical interface \${logical_interface} since the same name physical interface mapped to logical interface \${mapped_logical_interface}" >> /tmp/network_log - fi - done - - # add extra logical interfaces name to physical interfaces - if [ -z "\${physical_interfaces}" ]; then - physical_interfaces="\${available_logical_interfaces}" - else - physical_interfaces="\${physical_interfaces} \${available_logical_interfaces}" - fi - echo "updated physical interfaces: \${physical_interfaces}" >> /tmp/network_log - - #first map logical interface to the same name physical interface if that physical interface name is not used - unset_logical_interfaces="" - for logical_interface in \${sorted_unset_logical_interfaces}; do - eval "available_logical_interface=\\${available_logical_interface_\${logical_interface}}" - if [ ! -z "\${available_logical_interface}" ]; then - eval "physical_interface_mapping_\${available_logical_interface}=\${logical_interface}" - eval "logical_interface_mapping_\${logical_interface}=\${available_logical_interface}" - else - if [ -z "\${unset_logical_interfaces}" ]; then - unset_logical_interfaces="\${logical_interface}" - else - unset_logical_interfaces="\${unset_logical_interfaces} \${logical_interface}" - fi - fi - done - sorted_unset_logical_interfaces=\${unset_logical_interfaces} - - # map remain unset logical interfaces to available logical interface names - for logical_interface in \${sorted_unset_logical_interfaces}; do - for available_logical_interface in \${available_logical_interfaces}; do - eval "mapped_logical_interface=\\${physical_interface_mapping_\${available_logical_interface}}" - if [ -z "\${mapped_logical_interface}" ]; then - eval "physical_interface_mapping_\${available_logical_interface}=\${logical_interface}" - eval "logical_interface_mapping_\${logical_interface}=\${available_logical_interface}" - break - fi - done - done -fi -unset_logical_interfaces="" -sorted_unset_logical_interfaces="" - -echo "finish mapping ramaining unmapped logical interfaces" >> /tmp/network_log -for key in \${logical_interfaces}; do - eval "physical_interface=\\${logical_interface_mapping_\${key}}" - echo "map logical interface \${key} to physical interface \${physical_interface}" >> /tmp/network_log -done -for key in \${physical_interfaces}; do - eval "logical_interface=\\${physical_interface_mapping_\${key}}" - echo "map physical interface \${key} to logical interface \${logical_interface}" >> /tmp/network_log -done - -# map remaining unmapped physical interfaces -echo "map remaining unmapped physical interfaces" >> /tmp/network_log -if [ ! -z "\${sorted_unset_physical_interfaces}" ]; then - # get all available physical interfaces which the same name logical interface is not used - available_physical_interfaces="" - for physical_interface in \${physical_interfaces}; do - eval "mapped_physical_interface=\\${logical_interface_mapping_\${physical_interface}}" - if [ -z "\${mapped_physical_interface}" ]; then - eval "available_physical_interface_\${physical_interface}=\${physical_interface}" - if [ -z "\${available_physical_interfaces}" ]; then - available_physical_interfaces="\${physical_interface}" - else - available_physical_interfaces="\${available_physical_interfaces} \${physical_interface}" - fi - else - echo "ignore physical interface \${physical_interface} since the same name logical interface mapped to physical interface \${mapped_physical_interface}" >> /tmp/network_log - fi - done - - # add extra physical interfaces name to logical interfaces - if [ -z "\${logical_interfaces}" ]; then - logical_interfaces="\${available_physical_interfaces}" - else - logical_interfaces="\${logical_interfaces} \${available_physical_interfaces}" - fi - echo "updated logical interfaces: \${logical_interfaces}" >> /tmp/network_log - - #first map physical interface to the same name logical interface if that logical interface name is not used - unset_physical_interfaces="" - for physical_interface in \${sorted_unset_physical_interfaces}; do - eval "available_physical_interface=\\${available_physical_interface_\${physical_interface}}" - if [ ! -z "\${available_physical_interface}" ]; then - eval "logical_interface_mapping_\${available_physical_interface}=\${physical_interface}" - eval "physical_interface_mapping_\${physical_interface}=\${available_physical_interface}" - else - if [ -z "\${unset_physical_interfaces}" ]; then - unset_physical_interfaces="\${physical_interface}" - else - unset_physical_interfaces="\${unset_physical_interfaces} \${physical_interface}" - fi - fi - done - sorted_unset_physical_interfaces=\${unset_physical_interfaces} - - # map remain unset physical interfaces to logical interface name as available physical interface names - for physical_interface in \${sorted_unset_physical_interfaces}; do - for available_physical_interface in \${available_physical_interfaces}; do - eval "mapped_physical_interface=\\${logical_interface_mapping_\${available_physical_interface}}" - if [ -z "\${mapped_physical_interface}" ]; then - eval "logical_interface_mapping_\${available_physical_interface}=\${physical_interface}" - eval "physical_interface_mapping_\${physical_interface}=\${available_physical_interface}" - break - fi - done - done -fi -unset_physical_interfaces="" -sorted_unset_physical_interfaces="" - -echo "finish mapping ramaining unmapped physical interfaces" >> /tmp/network_log -for key in \${logical_interfaces}; do - eval "physical_interface=\\${logical_interface_mapping_\${key}}" - echo "map logical interface \${key} to physical interface \${physical_interface}" >> /tmp/network_log -done -for key in \${physical_interfaces}; do - eval "logical_interface=\\${physical_interface_mapping_\${key}}" - echo "map physical interface \${key} to logical interface \${logical_interface}" >> /tmp/network_log -done - -for key in \${logical_interfaces}; do - eval "physical_interface=\\${logical_interface_mapping_\${key}}" - if [ ! -z "\${physical_interface}" ]; then - eval "physical_mac=\\${physical_interface_mac_\${physical_interface}}" - else - physical_mac="" - fi - if [ ! -z "\${physical_mac}" ]; then - physical_mac=\$(echo \${physical_mac} | tr 'A-Z' 'a-z') - echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"\${physical_mac}\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"\$key\"" >> /etc/udev/rules.d/70-persistent-net.rules.new - echo "add network interface \$key mac \${physical_mac} into udev rules" >> /tmp/network_log - else - echo "network interface \$key does not find mac address to add to udev rules" >> /tmp/network_log - fi -done - -#if $numbondingdevs > 0 -# we have bonded interfaces, so set max_bonds -if [ -f "/etc/modprobe.conf" ]; then - echo "options bonding max_bonds=$numbondingdevs" >> /etc/modprobe.conf -fi -#end if - -## ============================================================================= -## Rewrite the interfaces file and make sure we preserve the loopback device -echo "auto lo" > /etc/network/interfaces -echo " iface lo inet loopback" >> /etc/network/interfaces -echo "" >> /etc/network/interfaces - -#set $nameserver_set = 0 - -#for $iname in $ikeys - #set $idata = $interfaces[$iname] - #set $mac = $idata.get("mac_address", "").upper() - #set $iface_type = $idata.get("interface_type", "").lower() - #set $mtu = $idata.get("mtu", "") - #set $static = $idata.get("static", "") - #set $management = $idata.get("management", "") - #set $ip = $idata.get("ip_address", "") - #set $netmask = $idata.get("netmask", "") - #set $if_gateway = $idata.get("if_gateway", "") - #set $static_routes = $idata.get("static_routes", "") - #set $iface_master = $idata.get("interface_master", "") - #set $bonding_opts = $idata.get("bonding_opts", "") - #set $bridge_opts = $idata.get("bridge_opts", "") - -used_logical_interface_$iname=$iname - - #if $iface_type in ("slave","bond_slave","bridge_slave","bonded_bridge_slave") - #set $static = 1 - #end if -echo "auto $iname" >> /etc/network/interfaces - - #if $static -echo "iface $iname inet static" >> /etc/network/interfaces - #else -echo "iface $iname inet dhcp" >> /etc/network/interfaces - #end if - - #if $iface_type not in ("master","bond","bridge","bonded_bridge_slave") - #if $vlanpattern.match($iname) - #pass - #else - #set $interface_matched = $subinterfacepattern.match($iname) - #if $interface_matched - #set $interface_name = $interface_matched.group(1) -logical_interface=$interface_name - #else -logical_interface=$iname - #end if -eval "physical_interface=\\${logical_interface_mapping_\${logical_interface}}" -if [ ! -z "\${physical_interface}" ]; then - eval "physical_mac=\\${physical_interface_mac_\${physical_interface}}" -fi -if [ ! -z "\${physical_mac}" ]; then - echo " hwaddress ether \${physical_mac}" >> /etc/network/interfaces -fi - #if not $subinterfacepattern.match($iname) -if [ -f "/etc/modprobe.conf" ] && [ ! -z "\${physical_interface}" ]; then - grep \${physical_interface} /etc/modprobe.conf | sed "s/\${physical_interface}/$iname/" >> /etc/modprobe.conf.cobbler - grep -v \${physical_interface} /etc/modprobe.conf >> /etc/modprobe.conf.new - rm -f /etc/modprobe.conf - mv /etc/modprobe.conf.new /etc/modprobe.conf -fi - #end if - #end if - #end if - - #if $iface_type in ("master","bond","bonded_bridge_slave") - ## if this is a bonded interface, configure it in modprobe.conf -if [ -f "/etc/modprobe.conf" ]; then - #if $osversion == "rhel4" - echo "install $iname /sbin/modprobe bonding -o $iname $bonding_opts" >> /etc/modprobe.conf.cobbler - #else - echo "alias $iname bonding" >> /etc/modprobe.conf.cobbler - #end if -fi - #set $bondslaves = "" - #for $bondiname in $ikeys - #set $bondidata = $interfaces[$bondiname] - #set $bondiface_type = $bondidata.get("interface_type", "").lower() - #set $bondiface_master = $bondidata.get("interface_master", "") - #if $bondiface_master == $iname - #set $bondslaves += $bondiname + " " - #end if - #end for -echo " bond-slaves $bondslaves" >> /etc/network/interfaces - - #if $bonding_opts != "" - #for $bondopts in $bonding_opts.split(" ") - #set [$bondkey, $bondvalue] = $bondopts.split("=") -echo " bond-$bondkey $bondvalue" >> /etc/network/interfaces - #end for - #end if - #elif $iface_type in ("slave","bond_slave") and $iface_master != "" -echo " bond-master $iface_master" >> /etc/network/interfaces - #end if - - #if $iface_type == "bridge" - #set $bridgeslaves = "" - #for $bridgeiname in $ikeys - #set $bridgeidata = $interfaces[$bridgeiname] - #set $bridgeiface_type = $bridgeidata.get("interface_type", "").lower() - #set $bridgeiface_master = $bridgeidata.get("interface_master", "") - #if $bridgeiface_master == $iname - #set $bridgeslaves += $bridgeiname + " " - #end if - #end for -echo " bridge_ports $bridgeslaves" >> /etc/network/interfaces - #if $bridge_opts != "" - #for $bridgeopts in $bridge_opts.split(" ") - #set [$bridgekey, $bridgevalue] = $bridgeopts.split("=") -echo " bridge_$bridgekey $bridgevalue" >> /etc/network/interfaces - #end for - #end if - #elif $iface_type in ["bridge_slave", "bonded_bridge_slave"] and $iface_master != "" - #pass - #end if - - #if $static - #if $iname in $promisc_interfaces -echo " address 0.0.0.0" >> /etc/network/interfaces -echo " up ip link set $iname up" >> /etc/network/interfaces -echo " up ip link set $iname promisc on" >> /etc/network/interfaces -echo " down ip link set $iname promisc off" >> /etc/network/interfaces -echo " down ip link set $iname down" >> /etc/network/interfaces - #elif $ip != "" -echo " address $ip" >> /etc/network/interfaces - #if $netmask == "" - ## Default to 255.255.255.0? - #set $netmask = "255.255.255.0" - #end if -echo " netmask $netmask" >> /etc/network/interfaces - #import netaddr - #set interface_network = $netaddr.IPNetwork('%s/%s' % ($ip, $netmask)) - #set interface_network_str = $str($interface_network) - #if $if_gateway != "" -echo " gateway $if_gateway" >> /etc/network/interfaces - #elif $gateway != "" - #set gateway_address = $netaddr.IPAddress($gateway) - #if $gateway_address in $interface_network -echo " gateway $gateway" >> /etc/network/interfaces - #end if - #end if - #end if - #else - #pass - #end if - - #if $mtu != "" -echo " mtu $mtu" >> /etc/network/interfaces - #end if - - #if not $nameserver_set - #if $iface_type not in ("slave","bond_slave","bridge_slave","bonded_bridge_slave") - #set $nameservers = ' '.join($name_servers) - #set $nameserver_search = ' '.join($name_servers_search) - #if $nameservers != "" -echo " dns-nameservers $nameservers" >> /etc/network/interfaces - #end if - #if $nameserver_search != "" -echo " dns-search $nameserver_search" >> /etc/network/interfaces - #end if - #set $nameserver_set = 1 - #end if - #end if - - #for $route in $static_routes - #set routepattern = $re.compile("[0-9/.]+:[0-9.]+") - #if $routepattern.match($route) - #set [$network, $router] = $route.split(":") -echo " up ip route add $network via $router dev $iname" >> /etc/network/interfaces - #else -echo " # Warning: invalid route: $route" >> /etc/network/interfaces - #end if - #end for - -echo "" >> /etc/network/interfaces -#end for - -for logical_interface in \${logical_interfaces}; do - eval "used_logical_interface=\\${used_logical_interface_\${logical_interface}}" - if [ ! -z "\${used_logical_interface}" ]; then - # ignore logical interface that is already generated in above - echo "ignore used logical interface \${logical_interface}" >> /tmp/network_log - continue - fi - echo "add logical interface \${logical_interface} into network config since it is not set above" >> /tmp/network_log - eval "physical_interface=\\${logical_interface_mapping_\${logical_interface}}" - if [ ! -z "\${physical_interface}" ]; then - echo "auto \${logical_interface}" >> /etc/network/interfaces - echo "iface \${logical_interface} inet static" >> /etc/network/interfaces - eval "mac=\\${physical_interface_mac_\${physical_interface}}" - if [ ! -z "\$mac" ]; then - echo " hwaddress ether \${mac}" >> /etc/network/interfaces - fi - echo "" >> /etc/network/interfaces - if [ -f "/etc/modprobe.conf" ] && [ ! -z "\${physical_interface}" ]; then - grep \${physical_interface} /etc/modprobe.conf | sed "s/\${physical_interface}/\${logical_interface}/" >> /etc/modprobe.conf.cobbler - grep -v \${physical_interface} /etc/modprobe.conf >> /etc/modprobe.conf.new - rm -f /etc/modprobe.conf - mv /etc/modprobe.conf.new /etc/modprobe.conf - fi - fi -done - -if [ -f "/etc/modprobe.conf" ]; then - cat /etc/modprobe.conf.cobbler >> /etc/modprobe.conf - rm -f /etc/modprobe.conf.cobbler -fi -if [ -f "/etc/udev/rules.d/70-persistent-net.rules" ]; then - rm -f /etc/udev/rules.d/70-persistent-net.rules -fi -if [ -f "/etc/udev/rules.d/70-persistent-net.rules.new" ]; then - mv /etc/udev/rules.d/70-persistent-net.rules.new /etc/udev/rules.d/70-persistent-net.rules -fi -## End post_install_network_config generated code +## Start post_install_network_config generated code +#if $getVar('promisc_nics', '') != "" + #set promisc_interfaces = [promisc.strip() for promisc in $promisc_nics.split(',') if promisc.strip()] +#else + #set promisc_interfaces = [] +#end if +#if $hostname != "" +# set the hostname +echo "$hostname" > /etc/hostname +/bin/hostname $hostname +#end if + +#set osversion = $getVar("os_version","") + +$SNIPPET('preseed_hosts') + +#set $num_ns_search = $len($name_servers_search) +#if $num_ns_search > 0 +sed -i -e "/^search /d" /etc/resolv.conf +echo -n "search " >>/etc/resolv.conf + #for $nameserversearch in $name_servers_search +echo -n "$nameserversearch " >>/etc/resolv.conf + #end for +echo "" >>/etc/resolv.conf +#end if + +#set $num_ns = $len($name_servers) +#if $num_ns > 0 +sed -i -e "/^nameserver /d" /etc/resolv.conf + #for $nameserver in $name_servers +echo "nameserver $nameserver" >>/etc/resolv.conf + #end for +#end if + +echo '' > /tmp/network_log + +# get physical interfaces +physical_interfaces="" +for physical_interface in \$(ip -o link | cut -d: -f2 | grep -v lo); do + echo "processing physical interface \${physical_interface}" >> /tmp/network_log + if [ -z "\${physical_interfaces}" ]; then + physical_interfaces="\${physical_interface}" + else + physical_interfaces="\${physical_interfaces} \${physical_interface}" + fi + eval "physical_interface_\${physical_interface}=\${physical_interface}" +done +echo "physical interfaces: \${physical_interfaces}" >> /tmp/network_log + +# map physical interface to mac address +mac_names="" +for physical_interface in \${physical_interfaces}; do + set \$(ip link show \${physical_interface}) +#if $osversion == "trusty" + mac=\$(echo \$@ | cut -d' ' -f17) +#else + mac=\$(echo \$@ | cut -d' ' -f13) +#end if + mac_name=\$(echo \${mac} |tr 'a-z' 'A-Z' | tr ':' '_') + if [ -z "\${mac_name}" ]; then + mac_names="\${mac_name}" + else + mac_names="\${mac_names} \${mac_name}" + fi + echo "mapping physical interface \${physical_interface} to mac \${mac}" >> /tmp/network_log + eval "physical_interface_mac_\${physical_interface}=\$mac" + eval "physical_mac_interface_\${mac_name}=\${physical_interface}" + eval "mac_name_\${mac_name}=\$mac" +done + +echo "list physical interfaces to mac" >> /tmp/network_log +for physical_interface in \${physical_interfaces}; do + eval "mac=\\${physical_interface_mac_\${physical_interface}}" + echo "physical interface to mac: \${physical_interface} => \${mac}" >> /tmp/network_log +done + +echo "list mac to physical interface mapping" >> /tmp/network_log +for mac_name in \${mac_names}; do + eval "mac=\\${mac_name_\${mac_name}}" + eval "physical_interface=\\${physical_mac_interface_\${mac_name}}" + echo "mac to physical interface: \${mac} => \${physical_interface}" >> /tmp/network_log +done + +logical_interfaces="" +#set ikeys = $interfaces.keys() +#import re +#set $vlanpattern = $re.compile("([a-zA-Z0-9]+)[\.][0-9]+") +#set $subinterfacepattern = $re.compile("([a-zA-Z0-9]+)[:][0-9]+") +#set $numbondingdevs = 0 +#for $iname in $ikeys + #set $idata = $interfaces[$iname] + #set $mac = $idata.get("mac_address", "").upper() + #set $interface_type = $idata.get("interface_type", "").lower() + #if $interface_type in ("master","bond","bonded_bridge_slave") + #set $numbondingdevs += 1 + #end if + #if $interface_type in ("master","bond","bridge","bonded_bridge_slave") + #continue + #end if + #if $vlanpattern.match($iname) + #set $interface_matched = $vlanpattern.match($iname) + #set $interface_name = $interface_matched.group(1) +logical_interface=${interface_name} + #elif $subinterfacepattern.match($iname) + #set $interface_matched = $subinterfacepattern.match($iname) + #set $interface_name = $interface_matched.group(1) +logical_interface=${interface_name} + #else +logical_interface=$iname + #end if +if [ -z "\${logical_interfaces}" ]; then + logical_interfaces="\${logical_interface}" +else + logical_interfaces="\${logical_interfaces} \${logical_interface}" +fi +eval "logical_interface_\${logical_interface}=\${logical_interface}" + #if $mac != "" + #set mac_name = $mac.replace(':', '_') +physical_interface=\${physical_mac_interface_${mac_name}} +eval "logical_interface_mapping_\${logical_interface}=\${physical_interface}" +if [ ! -z "\${physical_interface}" ]; then + eval "physical_interface_mapping_\${physical_interface}=\${logical_interface}" +fi + #else +eval "physical_interface=\\${logical_interface_mapping_\${logical_interface}}" +if [ -z "\${physical_interface}" ]; then + eval "logical_interface_mapping_\${logical_interface}=" +fi + #end if +#end for + +echo "logical interfaces: \${logical_interfaces}" >> /tmp/network_log + +echo "finish mapping logical interfaces in network config to physical interfaces" >> /tmp/network_log +for key in \${logical_interfaces}; do + eval "physical_interface=\\${logical_interface_mapping_\${key}}" + echo "map logical interface \${key} to physical interface \${physical_interface}" >> /tmp/network_log +done +for key in \${physical_interfaces}; do + eval "logical_interface=\\${physical_interface_mapping_\${key}}" + echo "map physical interface \${key} to logical interface \${logical_interface}" >> /tmp/network_log +done + +# map unmapped logical interface to the same name physical interface +echo "mapping unmapped logical interfaces to the same name physical interfaces" >> /tmp/network_log +for logical_interface in \${logical_interfaces}; do + eval "physical_interface=\\${logical_interface_mapping_\${logical_interface}}" + if [ ! -z "\${physical_interface}" ]; then + echo "ignore logical interface \${logical_interface} where its physical interface is \${physical_interface}" >> /tmp/network_log + continue + fi + # check if the same name physical interface is mapped + eval "mapped_logical_interface=\\${physical_interface_mapping_\${logical_interface}}" + if [ ! -z "\${mapped_logical_interface}" ]; then + echo "ignore logical interface \${logical_interface} since the same name physical interface is mapped by logical interface \${mapped_logical_interface}" >> /tmp/network_log + continue + fi + # check if the same name physical interface exists + eval "mapped_logical_interface=\\${physical_interface_\${logical_interface}}" + if [ -z "\${mapped_logical_interface}" ]; then + echo "ignore logical interface \${logical_interface} since the same name physical interface does not exist" >> /tmp/network_log + continue + fi + eval "logical_interface_mapping_\${logical_interface}=\${logical_interface}" + eval "physical_interface_mapping_\${logical_interface}=\${logical_interface}" + echo "set logical interface \${logical_interface} to the same physical interface" >> /tmp/network_log +done + +echo "finish mapping unmapped logical interfaces in network config to the same name physical interfaces" >> /tmp/network_log +for key in \${logical_interfaces}; do + eval "physical_interface=\\${logical_interface_mapping_\${key}}" + echo "map logical interface \${key} to physical interface \${physical_interface}" >> /tmp/network_log +done +for key in \${physical_interfaces}; do + eval "logical_interface=\\${physical_interface_mapping_\${key}}" + echo "map physical interface \${key} to logical interface \${logical_interface}" >> /tmp/network_log +done + + +unset_physical_interfaces="" +echo "get unset physical interfaces from \${physical_interfaces}" >> /tmp/network_log +for physical_interface in \${physical_interfaces}; do + eval "logical_interface=\\${physical_interface_mapping_\${physical_interface}}" + if [ ! -z "\${logical_interface}" ]; then + echo "physical interface \${physical_interface} is already set to \${logical_interface}" >> /tmp/network_log + continue + fi + if [ -z "\${unset_physical_interfaces}" ]; then + unset_physical_interfaces="\${physical_interface}" + else + unset_physical_interfaces="\${unset_physical_interfaces} \${physical_interface}" + fi + eval "unset_physical_interface_\${physical_interface}=\${physical_interface}" +done +echo "unset physical interfaces \${unset_physical_interfaces}" >> /tmp/network_log + +unset_logical_interfaces="" +echo "get unset logical interfaces from \${logical_interfaces}" >> /tmp/network_log +for logical_interface in \${logical_interfaces}; do + eval "physical_interface=\\${logical_interface_mapping_\${logical_interface}}" + if [ ! -z "\${physical_interface}" ]; then + echo "logical interface \${logical_interface} is already set to \${physical_interface}" >> /tmp/network_log + continue + fi + if [ -z "\${unset_logical_interfaces}" ]; then + unset_logical_interfaces="\${logical_interface}" + else + unset_logical_interfaces="\${unset_logical_interfaces} \${logical_interface}" + fi +done +echo "unset logical interfaces \${unset_logical_interfaces}" >> /tmp/network_log + +sorted_unset_physical_interfaces=\$(printf '%s\n' \${unset_physical_interfaces} | sort | xargs) +echo "sorted unset physical interfaces \${sorted_unset_physical_interfaces}" >> /tmp/network_log +sorted_unset_logical_interfaces=\$(printf '%s\n' \${unset_logical_interfaces} | sort | xargs) +echo "sorted unset logical interfaces \${sorted_unset_logical_interfaces}" >> /tmp/network_log + +# map unset logical interface to unset physical interface +echo "map unset logical interfaces \${sorted_unset_logical_interfaces} to unset physical interfaces \${sorted_unset_physical_interfaces}" >> /tmp/network_log +unset_logical_interfaces="" +for logical_interface in \${sorted_unset_logical_interfaces}; do + set \${sorted_unset_physical_interfaces} + physical_interface_num=\$#; + if [ \${physical_interface_num} -gt 0 ]; then + physical_interface=\$1 + shift 1 + sorted_unset_physical_interfaces="\$@" + echo "map unset logical interface \${logical_interface} to unset physical interface \${physical_interface}" >> /tmp/network_log + eval "physical_interface_mapping_\${physical_interface}=\${logical_interface}" + eval "logical_interface_mapping_\${logical_interface}=\${physical_interface}" + else + echo "remain unset logical interface \${logical_interface} since there is no remain unset physical interfaces" >> /tmp/network_log + if [ -z "\${unset_logical_interfaces}" ]; then + unset_logical_interfaces="\${logical_interface}" + else + unset_logical_interfaces="\${unset_logical_interfaces} \${logical_interface}" + fi + fi +done +sorted_unset_logical_interfaces=\${unset_logical_interfaces} +unset_physical_interfaces=\${sorted_unset_physical_interfaces} + +echo "finish mapping unmapped logical interfaces in network config to unmapped physical interfaces" >> /tmp/network_log +for key in \${logical_interfaces}; do + eval "physical_interface=\\${logical_interface_mapping_\${key}}" + echo "map logical interface \${key} to physical interface \${physical_interface}" >> /tmp/network_log +done +for key in \${physical_interfaces}; do + eval "logical_interface=\\${physical_interface_mapping_\${key}}" + echo "map physical interface \${key} to logical interface \${logical_interface}" >> /tmp/network_log +done + +echo "unset physical interfaces \${sorted_unset_physical_interfaces}" >> /tmp/network_log +echo "unset logical interfaces \${sorted_unset_logical_interfaces}" >> /tmp/network_log + +# map remaining unmapped logical interfaces +echo "map remaining unmapped logical interfaces" >> /tmp/network_log +if [ ! -z "\${sorted_unset_logical_interfaces}" ]; then + # get all available logical interfaces which the same name physical interface is not used + available_logical_interfaces="" + for logical_interface in \${logical_interfaces}; do + eval "mapped_logical_interface=\\${physical_interface_mapping_\${logical_interface}}" + if [ -z "\${mapped_logical_interface}" ]; then + eval "available_logical_interface_\${logical_interface}=\${logical_interface}" + if [ -z "\${available_logical_interfaces}" ]; then + available_logical_interfaces="\${logical_interface}" + else + available_logical_interfaces="\${available_logical_interfaces} \${logical_interface}" + fi + else + echo "ignore logical interface \${logical_interface} since the same name physical interface mapped to logical interface \${mapped_logical_interface}" >> /tmp/network_log + fi + done + + # add extra logical interfaces name to physical interfaces + if [ -z "\${physical_interfaces}" ]; then + physical_interfaces="\${available_logical_interfaces}" + else + physical_interfaces="\${physical_interfaces} \${available_logical_interfaces}" + fi + echo "updated physical interfaces: \${physical_interfaces}" >> /tmp/network_log + + #first map logical interface to the same name physical interface if that physical interface name is not used + unset_logical_interfaces="" + for logical_interface in \${sorted_unset_logical_interfaces}; do + eval "available_logical_interface=\\${available_logical_interface_\${logical_interface}}" + if [ ! -z "\${available_logical_interface}" ]; then + eval "physical_interface_mapping_\${available_logical_interface}=\${logical_interface}" + eval "logical_interface_mapping_\${logical_interface}=\${available_logical_interface}" + else + if [ -z "\${unset_logical_interfaces}" ]; then + unset_logical_interfaces="\${logical_interface}" + else + unset_logical_interfaces="\${unset_logical_interfaces} \${logical_interface}" + fi + fi + done + sorted_unset_logical_interfaces=\${unset_logical_interfaces} + + # map remain unset logical interfaces to available logical interface names + for logical_interface in \${sorted_unset_logical_interfaces}; do + for available_logical_interface in \${available_logical_interfaces}; do + eval "mapped_logical_interface=\\${physical_interface_mapping_\${available_logical_interface}}" + if [ -z "\${mapped_logical_interface}" ]; then + eval "physical_interface_mapping_\${available_logical_interface}=\${logical_interface}" + eval "logical_interface_mapping_\${logical_interface}=\${available_logical_interface}" + break + fi + done + done +fi +unset_logical_interfaces="" +sorted_unset_logical_interfaces="" + +echo "finish mapping ramaining unmapped logical interfaces" >> /tmp/network_log +for key in \${logical_interfaces}; do + eval "physical_interface=\\${logical_interface_mapping_\${key}}" + echo "map logical interface \${key} to physical interface \${physical_interface}" >> /tmp/network_log +done +for key in \${physical_interfaces}; do + eval "logical_interface=\\${physical_interface_mapping_\${key}}" + echo "map physical interface \${key} to logical interface \${logical_interface}" >> /tmp/network_log +done + +# map remaining unmapped physical interfaces +echo "map remaining unmapped physical interfaces" >> /tmp/network_log +if [ ! -z "\${sorted_unset_physical_interfaces}" ]; then + # get all available physical interfaces which the same name logical interface is not used + available_physical_interfaces="" + for physical_interface in \${physical_interfaces}; do + eval "mapped_physical_interface=\\${logical_interface_mapping_\${physical_interface}}" + if [ -z "\${mapped_physical_interface}" ]; then + eval "available_physical_interface_\${physical_interface}=\${physical_interface}" + if [ -z "\${available_physical_interfaces}" ]; then + available_physical_interfaces="\${physical_interface}" + else + available_physical_interfaces="\${available_physical_interfaces} \${physical_interface}" + fi + else + echo "ignore physical interface \${physical_interface} since the same name logical interface mapped to physical interface \${mapped_physical_interface}" >> /tmp/network_log + fi + done + + # add extra physical interfaces name to logical interfaces + if [ -z "\${logical_interfaces}" ]; then + logical_interfaces="\${available_physical_interfaces}" + else + logical_interfaces="\${logical_interfaces} \${available_physical_interfaces}" + fi + echo "updated logical interfaces: \${logical_interfaces}" >> /tmp/network_log + + #first map physical interface to the same name logical interface if that logical interface name is not used + unset_physical_interfaces="" + for physical_interface in \${sorted_unset_physical_interfaces}; do + eval "available_physical_interface=\\${available_physical_interface_\${physical_interface}}" + if [ ! -z "\${available_physical_interface}" ]; then + eval "logical_interface_mapping_\${available_physical_interface}=\${physical_interface}" + eval "physical_interface_mapping_\${physical_interface}=\${available_physical_interface}" + else + if [ -z "\${unset_physical_interfaces}" ]; then + unset_physical_interfaces="\${physical_interface}" + else + unset_physical_interfaces="\${unset_physical_interfaces} \${physical_interface}" + fi + fi + done + sorted_unset_physical_interfaces=\${unset_physical_interfaces} + + # map remain unset physical interfaces to logical interface name as available physical interface names + for physical_interface in \${sorted_unset_physical_interfaces}; do + for available_physical_interface in \${available_physical_interfaces}; do + eval "mapped_physical_interface=\\${logical_interface_mapping_\${available_physical_interface}}" + if [ -z "\${mapped_physical_interface}" ]; then + eval "logical_interface_mapping_\${available_physical_interface}=\${physical_interface}" + eval "physical_interface_mapping_\${physical_interface}=\${available_physical_interface}" + break + fi + done + done +fi +unset_physical_interfaces="" +sorted_unset_physical_interfaces="" + +echo "finish mapping ramaining unmapped physical interfaces" >> /tmp/network_log +for key in \${logical_interfaces}; do + eval "physical_interface=\\${logical_interface_mapping_\${key}}" + echo "map logical interface \${key} to physical interface \${physical_interface}" >> /tmp/network_log +done +for key in \${physical_interfaces}; do + eval "logical_interface=\\${physical_interface_mapping_\${key}}" + echo "map physical interface \${key} to logical interface \${logical_interface}" >> /tmp/network_log +done + +for key in \${logical_interfaces}; do + eval "physical_interface=\\${logical_interface_mapping_\${key}}" + if [ ! -z "\${physical_interface}" ]; then + eval "physical_mac=\\${physical_interface_mac_\${physical_interface}}" + else + physical_mac="" + fi + if [ ! -z "\${physical_mac}" ]; then + physical_mac=\$(echo \${physical_mac} | tr 'A-Z' 'a-z') + echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"\${physical_mac}\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"\$key\"" >> /etc/udev/rules.d/70-persistent-net.rules.new + echo "add network interface \$key mac \${physical_mac} into udev rules" >> /tmp/network_log + else + echo "network interface \$key does not find mac address to add to udev rules" >> /tmp/network_log + fi +done + +#if $numbondingdevs > 0 +# we have bonded interfaces, so set max_bonds +if [ -f "/etc/modprobe.conf" ]; then + echo "options bonding max_bonds=$numbondingdevs" >> /etc/modprobe.conf +fi +#end if + +## ============================================================================= +## Rewrite the interfaces file and make sure we preserve the loopback device +echo "auto lo" > /etc/network/interfaces +echo " iface lo inet loopback" >> /etc/network/interfaces +echo "" >> /etc/network/interfaces + +#set $nameserver_set = 0 + +#for $iname in $ikeys + #set $idata = $interfaces[$iname] + #set $mac = $idata.get("mac_address", "").upper() + #set $iface_type = $idata.get("interface_type", "").lower() + #set $mtu = $idata.get("mtu", "") + #set $static = $idata.get("static", "") + #set $management = $idata.get("management", "") + #set $ip = $idata.get("ip_address", "") + #set $netmask = $idata.get("netmask", "") + #set $if_gateway = $idata.get("if_gateway", "") + #set $static_routes = $idata.get("static_routes", "") + #set $iface_master = $idata.get("interface_master", "") + #set $bonding_opts = $idata.get("bonding_opts", "") + #set $bridge_opts = $idata.get("bridge_opts", "") + +used_logical_interface_$iname=$iname + + #if $iface_type in ("slave","bond_slave","bridge_slave","bonded_bridge_slave") + #set $static = 1 + #end if +echo "auto $iname" >> /etc/network/interfaces + + #if $static +echo "iface $iname inet static" >> /etc/network/interfaces + #else +echo "iface $iname inet dhcp" >> /etc/network/interfaces + #end if + + #if $iface_type not in ("master","bond","bridge","bonded_bridge_slave") + #if $vlanpattern.match($iname) + #pass + #else + #set $interface_matched = $subinterfacepattern.match($iname) + #if $interface_matched + #set $interface_name = $interface_matched.group(1) +logical_interface=$interface_name + #else +logical_interface=$iname + #end if +eval "physical_interface=\\${logical_interface_mapping_\${logical_interface}}" +if [ ! -z "\${physical_interface}" ]; then + eval "physical_mac=\\${physical_interface_mac_\${physical_interface}}" +fi +if [ ! -z "\${physical_mac}" ]; then + echo " hwaddress ether \${physical_mac}" >> /etc/network/interfaces +fi + #if not $subinterfacepattern.match($iname) +if [ -f "/etc/modprobe.conf" ] && [ ! -z "\${physical_interface}" ]; then + grep \${physical_interface} /etc/modprobe.conf | sed "s/\${physical_interface}/$iname/" >> /etc/modprobe.conf.cobbler + grep -v \${physical_interface} /etc/modprobe.conf >> /etc/modprobe.conf.new + rm -f /etc/modprobe.conf + mv /etc/modprobe.conf.new /etc/modprobe.conf +fi + #end if + #end if + #end if + + #if $iface_type in ("master","bond","bonded_bridge_slave") + ## if this is a bonded interface, configure it in modprobe.conf +if [ -f "/etc/modprobe.conf" ]; then + #if $osversion == "rhel4" + echo "install $iname /sbin/modprobe bonding -o $iname $bonding_opts" >> /etc/modprobe.conf.cobbler + #else + echo "alias $iname bonding" >> /etc/modprobe.conf.cobbler + #end if +fi + #set $bondslaves = "" + #for $bondiname in $ikeys + #set $bondidata = $interfaces[$bondiname] + #set $bondiface_type = $bondidata.get("interface_type", "").lower() + #set $bondiface_master = $bondidata.get("interface_master", "") + #if $bondiface_master == $iname + #set $bondslaves += $bondiname + " " + #end if + #end for +echo " bond-slaves $bondslaves" >> /etc/network/interfaces + + #if $bonding_opts != "" + #for $bondopts in $bonding_opts.split(" ") + #set [$bondkey, $bondvalue] = $bondopts.split("=") +echo " bond-$bondkey $bondvalue" >> /etc/network/interfaces + #end for + #end if + #elif $iface_type in ("slave","bond_slave") and $iface_master != "" +echo " bond-master $iface_master" >> /etc/network/interfaces + #end if + + #if $iface_type == "bridge" + #set $bridgeslaves = "" + #for $bridgeiname in $ikeys + #set $bridgeidata = $interfaces[$bridgeiname] + #set $bridgeiface_type = $bridgeidata.get("interface_type", "").lower() + #set $bridgeiface_master = $bridgeidata.get("interface_master", "") + #if $bridgeiface_master == $iname + #set $bridgeslaves += $bridgeiname + " " + #end if + #end for +echo " bridge_ports $bridgeslaves" >> /etc/network/interfaces + #if $bridge_opts != "" + #for $bridgeopts in $bridge_opts.split(" ") + #set [$bridgekey, $bridgevalue] = $bridgeopts.split("=") +echo " bridge_$bridgekey $bridgevalue" >> /etc/network/interfaces + #end for + #end if + #elif $iface_type in ["bridge_slave", "bonded_bridge_slave"] and $iface_master != "" + #pass + #end if + + #if $static + #if $iname in $promisc_interfaces +echo " address 0.0.0.0" >> /etc/network/interfaces +echo " up ip link set $iname up" >> /etc/network/interfaces +echo " up ip link set $iname promisc on" >> /etc/network/interfaces +echo " down ip link set $iname promisc off" >> /etc/network/interfaces +echo " down ip link set $iname down" >> /etc/network/interfaces + #elif $ip != "" +echo " address $ip" >> /etc/network/interfaces + #if $netmask == "" + ## Default to 255.255.255.0? + #set $netmask = "255.255.255.0" + #end if +echo " netmask $netmask" >> /etc/network/interfaces + #import netaddr + #set interface_network = $netaddr.IPNetwork('%s/%s' % ($ip, $netmask)) + #set interface_network_str = $str($interface_network) + #if $if_gateway != "" +echo " gateway $if_gateway" >> /etc/network/interfaces + #elif $gateway != "" + #set gateway_address = $netaddr.IPAddress($gateway) + #if $gateway_address in $interface_network +echo " gateway $gateway" >> /etc/network/interfaces + #end if + #end if + #end if + #else + #pass + #end if + + #if $mtu != "" +echo " mtu $mtu" >> /etc/network/interfaces + #end if + + #if not $nameserver_set + #if $iface_type not in ("slave","bond_slave","bridge_slave","bonded_bridge_slave") + #set $nameservers = ' '.join($name_servers) + #set $nameserver_search = ' '.join($name_servers_search) + #if $nameservers != "" +echo " dns-nameservers $nameservers" >> /etc/network/interfaces + #end if + #if $nameserver_search != "" +echo " dns-search $nameserver_search" >> /etc/network/interfaces + #end if + #set $nameserver_set = 1 + #end if + #end if + + #for $route in $static_routes + #set routepattern = $re.compile("[0-9/.]+:[0-9.]+") + #if $routepattern.match($route) + #set [$network, $router] = $route.split(":") +echo " up ip route add $network via $router dev $iname" >> /etc/network/interfaces + #else +echo " # Warning: invalid route: $route" >> /etc/network/interfaces + #end if + #end for + +echo "" >> /etc/network/interfaces +#end for + +for logical_interface in \${logical_interfaces}; do + eval "used_logical_interface=\\${used_logical_interface_\${logical_interface}}" + if [ ! -z "\${used_logical_interface}" ]; then + # ignore logical interface that is already generated in above + echo "ignore used logical interface \${logical_interface}" >> /tmp/network_log + continue + fi + echo "add logical interface \${logical_interface} into network config since it is not set above" >> /tmp/network_log + eval "physical_interface=\\${logical_interface_mapping_\${logical_interface}}" + if [ ! -z "\${physical_interface}" ]; then + echo "auto \${logical_interface}" >> /etc/network/interfaces + echo "iface \${logical_interface} inet static" >> /etc/network/interfaces + eval "mac=\\${physical_interface_mac_\${physical_interface}}" + if [ ! -z "\$mac" ]; then + echo " hwaddress ether \${mac}" >> /etc/network/interfaces + fi + echo "" >> /etc/network/interfaces + if [ -f "/etc/modprobe.conf" ] && [ ! -z "\${physical_interface}" ]; then + grep \${physical_interface} /etc/modprobe.conf | sed "s/\${physical_interface}/\${logical_interface}/" >> /etc/modprobe.conf.cobbler + grep -v \${physical_interface} /etc/modprobe.conf >> /etc/modprobe.conf.new + rm -f /etc/modprobe.conf + mv /etc/modprobe.conf.new /etc/modprobe.conf + fi + fi +done + +if [ -f "/etc/modprobe.conf" ]; then + cat /etc/modprobe.conf.cobbler >> /etc/modprobe.conf + rm -f /etc/modprobe.conf.cobbler +fi +if [ -f "/etc/udev/rules.d/70-persistent-net.rules" ]; then + rm -f /etc/udev/rules.d/70-persistent-net.rules +fi +if [ -f "/etc/udev/rules.d/70-persistent-net.rules.new" ]; then + mv /etc/udev/rules.d/70-persistent-net.rules.new /etc/udev/rules.d/70-persistent-net.rules +fi +## End post_install_network_config generated code -- cgit 1.2.3-korg