define network_interface ( $bonding_options = '' ) { $a = split($name, '\|') $interface = shift($a) $bootproto = shift($a) $ip = shift($a) $netmask = shift($a) $bonded = shift($a) $master_interface = shift($a) notice "CKM: ${interface}: $bonded - ${master_interface}" case $bonded { 'true': { case $master_interface { '': { notice "CKM: master interface empty: ${master_interface} -- we should be modprobing" modprobe { $interface: type => install, before => File["ifcfg-${interface}"], module_options => $operatingsystemrelease ? { '4' => "/sbin/modprobe bonding -o ${interface} mode=1 primary=eth0", '5' => "bonding", }, } } } } } file { "ifcfg-${interface}": name => "/etc/sysconfig/network-scripts/ifcfg-${interface}", owner => root, group => root, mode => 0644, content => template("network/interface.erb"), #notify => Exec["manage-interface"], } }