mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-05-30 09:36:41 +00:00
Merge pull request #6066 from bybai/cfg_nmcli
confignetwork framework refine using nmcli
This commit is contained in:
commit
0378dd5345
@ -559,7 +559,11 @@ function configure_nicdevice {
|
||||
if [ $? -ne 0 ]; then
|
||||
errorcode=1
|
||||
else
|
||||
create_bridge_interface ifname=$nic_dev _brtype=$nic_dev_type _port=$base_nic_dev _pretype=$base_nic_type
|
||||
if [ "$networkmanager_active" = "0" ]; then
|
||||
create_bridge_interface ifname=$nic_dev _brtype=$nic_dev_type _port=$base_nic_dev _pretype=$base_nic_type
|
||||
elif [ "$networkmanager_active" = "1" ]; then
|
||||
create_bridge_interface_nmcli ifname=$nic_dev _brtype=$nic_dev_type _port=$base_nic_dev _pretype=$base_nic_type
|
||||
fi
|
||||
fi
|
||||
#configure vlan
|
||||
elif [ x"$nic_dev_type" = "xvlan" ]; then
|
||||
@ -570,11 +574,18 @@ function configure_nicdevice {
|
||||
vlanid=`echo "$nic_dev" | $sed -e 's/^\(.*\)vla\?n\?\([0-9]\+\)$/\2/'`
|
||||
vlanname=`echo "$nic_dev" | $sed -e 's/^\(.*\)vla\?n\?\([0-9]\+\)$/\1/'`
|
||||
fi
|
||||
create_vlan_interface ifname=$vlanname vlanid=$vlanid
|
||||
|
||||
if [ "$networkmanager_active" = "0" ]; then
|
||||
create_vlan_interface ifname=$vlanname vlanid=$vlanid
|
||||
elif [ "$networkmanager_active" = "1" ]; then
|
||||
create_vlan_interface_nmcli ifname=$vlanname vlanid=$vlanid
|
||||
fi
|
||||
#configure bond
|
||||
elif [ x"$nic_dev_type" = "xbond" ]; then
|
||||
create_bond_interface ifname=$nic_dev slave_ports=$base_nic_for_bond slave_type=$base_nic_type
|
||||
if [ "$networkmanager_active" = "0" ]; then
|
||||
create_bond_interface ifname=$nic_dev slave_ports=$base_nic_for_bond slave_type=$base_nic_type
|
||||
elif [ "$networkmanager_active" = "1" ]; then
|
||||
create_bond_interface_nmcli ifname=$nic_dev slave_ports=$base_nic_for_bond slave_type=$base_nic_type
|
||||
fi
|
||||
elif [ x"$nic_dev_type" = "xinfiniband" ] || [ x"$nic_dev_type" = "xOmnipath" ]; then
|
||||
log_info "Call configib for IB nics: $nic_dev, ports: $num_iba_ports"
|
||||
log_info "NIC_IBNICS=$nic_dev NIC_IBAPORTS=$num_iba_ports configib"
|
||||
@ -593,26 +604,6 @@ function configure_nicdevice {
|
||||
return $errorcode
|
||||
}
|
||||
|
||||
############################################################################
|
||||
#
|
||||
# disable NetworkManager and start network
|
||||
#
|
||||
###########################################################################
|
||||
function enable_network_service {
|
||||
|
||||
checkservicestatus NetworkManager > /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
log_info "NetworkManager is active. start to stop it ..."
|
||||
stopservice NetworkManager | log_lines info
|
||||
disableservice NetworkManager
|
||||
enableservice network
|
||||
startservice network
|
||||
else
|
||||
log_info "NetworkManager is inactive."
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
############################################################################
|
||||
#
|
||||
# Main process
|
||||
@ -644,6 +635,17 @@ if [ $boot_install_nic -eq 1 ];then
|
||||
fi
|
||||
fi
|
||||
|
||||
#check if using NetworkManager or network service
|
||||
networkmanager_active=2
|
||||
check_NetworkManager_or_network_service
|
||||
if [ $? -eq 0 ]; then
|
||||
networkmanager_active=0
|
||||
elif [ $? -eq 1 ]; then
|
||||
networkmanager_active=1
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#replace | with "@", for example, eth1|eth2 ----> eth1@eth2
|
||||
nicdevice=`echo "$NICDEVICES" | sed 's/|/@/g'`
|
||||
|
||||
@ -695,8 +697,6 @@ if [ -n "$valid_sorted_nicdevice_list" ]; then
|
||||
log_info "All valid nics and device list:"
|
||||
echo "$valid_sorted_nicdevice_list" |log_lines info
|
||||
fi
|
||||
#enable network service
|
||||
enable_network_service
|
||||
|
||||
#config nics and ifcfg files
|
||||
configure_nicdevice "$valid_sorted_nicdevice_list"
|
||||
|
@ -743,6 +743,17 @@ function check_brctl() {
|
||||
fi
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# check and set device managed
|
||||
# input: ifname
|
||||
# output: 0 managed
|
||||
# 1 umanaged
|
||||
#
|
||||
###############################################################################
|
||||
function check_and_set_device_managed() {
|
||||
ifname=$1
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
@ -1548,3 +1559,82 @@ function decode_arguments {
|
||||
return $rc
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# check NetworkManager
|
||||
# output: 2 error
|
||||
# 1 using NetworkManager
|
||||
# 0 using network
|
||||
#
|
||||
##############################################################################
|
||||
function check_NetworkManager_or_network_service() {
|
||||
#check NetworkManager is active
|
||||
checkservicestatus NetworkManager > /dev/null 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
log_info "NetworkManager is active"
|
||||
#check nmcli is installed
|
||||
type $nmcli >/dev/null 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
log_error "There is no nmcli"
|
||||
else
|
||||
stopservice network | log_lines info
|
||||
disableservice network | log_lines info
|
||||
stopservice networking | log_lines info
|
||||
disableservice networking | log_lines info
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
checkservicestatus network > /dev/null 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
stopservice NetworkManager | log_lines info
|
||||
disableservice NetworkManager | log_lines info
|
||||
log_info "network service is active"
|
||||
return 0
|
||||
fi
|
||||
checkservicestatus networking > /dev/null 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
stopservice NetworkManager | log_lines info
|
||||
disableservice NetworkManager | log_lines info
|
||||
log_info "networking service is active"
|
||||
return 0
|
||||
fi
|
||||
log_error "NetworkManager, network.service and networking service are not active"
|
||||
return 2
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# create vlan using nmcli
|
||||
#
|
||||
# input : ifname=<ifname> slave_ports=<ports> xcatnet=<xcatnetwork> _ipaddr=<ip> _netmask=<netmask> _mtu=<mtu> _bridge=<bridge_name> vlanid=<vlanid>
|
||||
# return : 0 success
|
||||
#
|
||||
###############################################################################
|
||||
function create_vlan_interface_nmcli {
|
||||
log_info "create_vlan_interface_nmcli $@"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# create bridge
|
||||
#
|
||||
# input : ifname=<ifname> xcatnet=<xcat_network> _ipaddr=<ip> _netmask=<netmask> _port=<port> _pretype=<nic_type> _brtype=<bridge|bridge_ovs> _mtu=<mtu> _bridge=<bridge_name>
|
||||
#
|
||||
###############################################################################
|
||||
function create_bridge_interface_nmcli {
|
||||
log_info "create_bridge_interface_nmcli $@"
|
||||
|
||||
}
|
||||
|
||||
#############################################################################################################################
|
||||
#
|
||||
# create bond or bond->vlan interface
|
||||
# https://www.kernel.org/doc/Documentation/networking/bonding.txt
|
||||
# https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/sec-Using_Channel_Bonding.html
|
||||
#
|
||||
# input : ifname=<nic> xcatnet=<xcatnetwork> _ipaddr=<ip> _netmask=<netmask> _bonding_opts=<bonding_opts> _mtu=<mtu> slave_ports=<port1,port2>
|
||||
#
|
||||
############################################################################################################################
|
||||
function create_bond_interface_nmcli {
|
||||
log_info "create_bond_interface $@"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user