mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-05-29 09:13:08 +00:00
118 lines
3.4 KiB
Bash
Executable File
118 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
PATH="/opt/xcat/bin:/opt/xcat/sbin:/opt/xcat/share/xcat/tools:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin"
|
|
export PATH
|
|
function runcmd(){
|
|
echo "Run command $* ..."
|
|
result=`$*`
|
|
if [[ $? -eq 0 ]];then
|
|
echo -e "Run command $* ... [Succeed]\n";
|
|
return 0;
|
|
else
|
|
echo -e "Run command $* ... [Failed]\n";
|
|
return 1;
|
|
fi
|
|
}
|
|
|
|
# We should be using private networks
|
|
TESTNODE=testnode
|
|
TESTNODE_IP="192.168.3.1"
|
|
|
|
MASTER_PRIVATE_IP="192.168.1.1"
|
|
MASTER_PRIVATE_NETMASK="255.255.0.0"
|
|
MASTER_PRIVATE_NETWORK="192_168_0_0-255_255_0_0"
|
|
|
|
|
|
function check_destiny() {
|
|
cmd="chdef ${TESTNODE} arch=ppc64le cons=ipmi groups=all ip=${TESTNODE_IP} mac=4e:ee:ee:ee:ee:0e netboot=$NETBOOT tftpserver=$MASTER_PRIVATE_IP xcatmaster=$MASTER_PRIVATE_IP";
|
|
runcmd $cmd;
|
|
lsdef ${TESTNODE}
|
|
|
|
MASTERIP=`lsdef -t site -i master -c 2>&1 | awk -F'=' '{print $2}'`;
|
|
MASTERNET=`ifconfig | awk "BEGIN{RS=\"\"}/\<$MASTERIP\>/{print \$1}"|head -n 1 | awk -F ' ' '{print $1}'|awk -F ":" '{print \$1}' 2>&1`;
|
|
NET2=`netstat -i -a|grep -v Kernel|grep -v Iface |grep -v lo|grep -v $MASTERNET|head -n 1|awk '{print $1}'`;
|
|
|
|
echo "MASTERIP=$MASTERIP"
|
|
echo "MASTERNET=$MASTERNET"
|
|
echo "NET2=$NET2"
|
|
|
|
if [[ -z $NET2 ]];then
|
|
echo "There is no second network, could not verify the test"
|
|
return 1;
|
|
else
|
|
cmd="ip addr add $MASTER_PRIVATE_IP/$MASTER_PRIVATE_NETMASK dev $NET2";
|
|
runcmd $cmd;
|
|
echo "Check if ip addess $MASTER_PRIVATE_IP/$MASTER_PRIVATE_NETMASK is added for $NET2"
|
|
ip addr show $NET2
|
|
cmd="makenetworks";
|
|
runcmd $cmd;
|
|
tabdump networks
|
|
cmd="makehosts ${TESTNODE}"
|
|
runcmd $cmd
|
|
echo "Check if ${TESTNODE} can be found in /etc/hosts"
|
|
grep ${TESTNODE} /etc/hosts
|
|
cmd="nodeset ${TESTNODE} shell";
|
|
runcmd $cmd;
|
|
cmd="ip addr del $MASTER_PRIVATE_IP/$MASTER_PRIVATE_NETMASK dev $NET2";
|
|
runcmd $cmd;
|
|
echo "Check if 'nodeset ${TESTNODE} shell' is added to ${SHELLFOLDER}/${TESTNODE}"
|
|
echo "==============================================="
|
|
cat "${SHELLFOLDER}/${TESTNODE}"
|
|
echo "==============================================="
|
|
cat "${SHELLFOLDER}/${TESTNODE}" |grep "xcatd=${MASTER_PRIVATE_IP}:3001 destiny=shell";
|
|
if [[ $? -eq 0 ]] ;then
|
|
return 0;
|
|
else
|
|
echo "'nodeset ${TESTNODE} shell' FAILED";
|
|
return 1;
|
|
fi
|
|
fi
|
|
}
|
|
|
|
function clear_env() {
|
|
rmdef -t network -o ${MASTER_PRIVATE_NETWORK}
|
|
makehosts -d ${TESTNODE}
|
|
rmdef ${TESTNODE}
|
|
if [[ $? -eq 0 ]];then
|
|
return 0;
|
|
else
|
|
return 1;
|
|
fi
|
|
}
|
|
|
|
NETBOOT=""
|
|
SHELLFOLDER=""
|
|
while [ "$#" -ge "0" ]; do
|
|
case $1 in
|
|
"--check" )
|
|
NETBOOT=$2;
|
|
if [[ $NETBOOT =~ petitboot ]];then
|
|
SHELLFOLDER="/tftpboot/petitboot";
|
|
elif [[ $NETBOOT =~ xnba ]];then
|
|
SHELLFOLDER="/tftpboot/xcat/xnba/nodes"
|
|
else
|
|
SHELLFOLDER="/tftpboot/boot/grub2";
|
|
fi
|
|
check_destiny ;
|
|
if [[ $? -eq 1 ]];then
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|
|
;;
|
|
"-c"|"--clear" )
|
|
clear_env;
|
|
if [[ $? -eq 1 ]];then
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|
|
;;
|
|
*)
|
|
echo
|
|
echo "Error: Usage: $0: -cd|-c"
|
|
echo
|
|
exit 1;
|
|
;;
|
|
esac
|
|
done
|