#!/bin/bash
source ./conf
echo ${system_name}|grep _4k_bcache
if [ $? -eq 0 ];then
source_uefi=${system_name%_4k_bcache}_${arch_name}_uefi
source_ks=${system_name}_${arch_name}-ks.templete
else
source_uefi=${system_name}_${arch_name}_uefi
source_ks=${system_name}_${arch_name}-ks.templete
fi
cd /var/lib/tftpboot
target_uefi=auto_uefi/${bmc_ip}_uefi
rm -rf ${target_uefi}
cp -r ${source_uefi} ${target_uefi}
sed -i "s#bmc_ip#${bmc_ip}#" ${target_uefi}/grub.cfg
cd /home/PXE/os_install/ks
target_ks=auto_ks/${bmc_ip}-ks.cfg
rm -rf ${target_ks}
cp -r ${source_ks} ${target_ks}
sed -i "s#disk_uuid#${disk_uuid}#" ${target_ks}
sed -i "s#manage_ip#${manage_ip}#" ${target_ks}
sed -i "s#manage_prefix#${manage_prefix}#" ${target_ks}
sed -i "s#manage_gateway#${manage_gateway}#" ${target_ks}
while true
do
if [[ -e "/dhcp_conf_lock" ]]
then
echo wait dhcp lock release
sleep 1
continue
else
touch /dhcp_conf_lock
\cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf-bak
modify_line=$(cat -n /etc/dhcp/dhcpd.conf|grep -A 6 "host ${dhcp_ip}"|grep filename|awk '{print $1}')
sed -i "${modify_line}s#filename.*#filename \"${target_uefi}/${efi_name}\";#" /etc/dhcp/dhcpd.conf
systemctl restart dhcpd
if [[ $? -eq 0 ]]
then
echo 'restart dhcpd successed'
rm -f /dhcp_conf_lock
rm -f /etc/dhcp/dhcpd.conf-bak
break
else
echo 'restart dhcpd failed'
\cp /etc/dhcp/dhcpd.conf-bak /etc/dhcp/dhcpd.conf
rm -f /dhcp_conf_lock
exit 1
fi
fi
done
ipmitool -I lanplus -H ${bmc_ip} -U ${bmc_user} -P ${bmc_pwd} chassis bootdev disk options=persistent
ipmitool -I lanplus -H ${bmc_ip} -U ${bmc_user} -P ${bmc_pwd} chassis bootdev pxe options=efiboot
ipmitool -I lanplus -H ${bmc_ip} -U ${bmc_user} -P ${bmc_pwd} chassis power reset