该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因为排版好像有的问题,大佬们将就一下
%post
sudo echo 'begin' >/tmp/step.txt
chmod +w /etc/default/grub
因为使用的16.04的系统,所以得改下/etc/default/grub才能进系统
sudo sed -i 's@GRUB_CMDLINE_LINUX_DEFAULT@\#GRUB_CMDLINE_LINUX_DEFAULT@' /etc/default/grub
sudo sed -i 's@GRUB_CMDLINE_LINUX=""@GRUB_CMDLINE_LINUX="text"@' /etc/default/grub
update-grub
sudo echo 'allow root login'>>/tmp/step.txt
允许root登陆
if [ `cat /etc/ssh/sshd_config |grep -v "#"|grep "PermitRootLogin yes"|wc -l` -eq 0 ];then
if [ `cat /etc/ssh/sshd_config |grep -v "#"|grep PermitRootLogin|wc -l` -eq 0 ];then
sudo echo "PermitRootLogin yes">>/etc/ssh/sshd_config
else
sudo sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
fi
fi
sudo service ssh restart
sudo echo 'download netinfo'>>/tmp/step.txt
根据mac地址获取静态IP
NetName=`ip a|grep "state UP"|grep -v lo|cut -d : -f 2`
mac=01-`ifconfig $NetName|grep HWaddr|awk '{print $5}'|sed 's/:/-/g'`
sudo wget -O /tmp/$mac url
sudo wget -O /tmp/jq url
sudo chmod +x /tmp/jq
IP_num=`cat /tmp/$mac|/tmp/jq -r '.server_ip'|wc -l`
DNS_num=`cat /tmp/$mac|/tmp/jq -r '.dns'|wc -l`
password=`cat /tmp/$mac|/tmp/jq -r '.password'`
更改密码
echo 'change password'>>/tmp/step.txt
password=${password:-qwe123}
echo "root:${password}"|sudo chpasswd
[[ $IP_num -ge 2 ]]&&IP_num=$[IP_num-2]
[[ $DNS_num -ge 2 ]]&&DNS_num=$[DNS_num-2]
sudo echo '#!/bin/bash'>/tmp/renet.sh
sudo echo 'begin for IP'>>/tmp/step.txt
写入IP信息
for i in `seq -1 $[IP_num-2]`
do
if [ $i -eq -1 ];then
sudo sed -i "s/dhcp/static/" /etc/network/interfaces
sudo echo "address `cat /tmp/$mac|/tmp/jq -r '.server_ip'`">>/etc/network/interfaces
sudo echo "netmask `cat /tmp/$mac|/tmp/jq -r '.netmask'`">>/etc/network/interfaces
sudo echo "gateway `cat /tmp/$mac|/tmp/jq -r '.gateway'`">>/etc/network/interfaces
sudo echo "ifdown${NetName}">>/tmp/renet.sh
sudo echo "ifup${NetName}">>/tmp/renet.sh
else
sudo echo "auto ${NetName}:$i">>/etc/network/interfaces
sudo echo "iface ${NetName}:$i inet static">>/etc/network/interfaces
sudo echo "address `cat /tmp/$mac|/tmp/jq -r '.server_ip'[$i]`">>/etc/network/interfaces
sudo echo "netmask `cat /tmp/$mac|/tmp/jq -r '.netmask'`">>/etc/network/interfaces
sudo echo "ifdown${NetName}:$i">>/tmp/renet.sh
sudo echo "ifup${NetName}:$i">>/tmp/renet.sh
fi
done
sudo echo 'start post'>>/tmp/step.txt
sudo wget --post-data="mac_addr=${mac}&status=0" url
sudo echo "">/etc/resolv.conf
写入nameserver信息
sudo echo 'begin for dns'>>/tmp/step.txt
for j in `seq 0 $[DNS_num-1]`
do
if [ $DNS_num -eq 1 ];then
sudo echo "nameserver `cat /tmp/$mac|/tmp/jq -r '.dns'`">>/etc/resolv.conf
else
sudo echo "nameserver `cat /tmp/$mac|/tmp/jq -r '.dns'[$j]`">>/etc/resolv.conf
fi
done
重启网卡,因为networking用不了,这里感觉也可以执行重启命令
sudo bash /tmp/renet.sh
sudo echo 'end'>>/tmp/step.txt
#rm /tmp/{renet.sh,$mac,jq}