• 【shell脚本】全自动完成pxe无人值守批量装机脚本,匹配centos系列


    本脚本采用的是搭建ftp服务器、tftp服务器、dhcp服务器来完成文件的传输

    ks应答文件为最小化安装,免去图形化,可以实现一键装机~~

    1. #!/bin/bash
    2. yum -y install tftp-server dhcp vsftpd syslinux &> /dev/null
    3. ###脚本说明:需要输入dhcp地址池的最小主机编号和最大主机编号,请仔细阅读,并按要求赋值
    4. IP=`ip a s ens33 | awk -F'[ /]+' 'NR==3{print $3}'`
    5. NET=${IP%.*}.
    6. read -p "请输入地址池最小主机号:" min
    7. read -p "请输入地址池最大主机号:" max
    8. #修改分配网段地址,指定服务器地址(本机IP),指定pxelinux.0引导程序文件
    9. echo "subnet ${NET}0 netmask 255.255.255.0 {
    10. range ${NET}${min} ${NET}${max};
    11. option routers ${IP};
    12. next-server ${IP};
    13. filename \"pxelinux.0\";
    14. }" > /etc/dhcp/dhcpd.conf
    15. #开启dhcp服务
    16. systemctl start dhcpd
    17. #开启TFTP服务,准备四大文件
    18. sed -i "14 s/yes/no/" /etc/xinetd.d/tftp
    19. mkdir /var/ftp/centos7
    20. mount /dev/sr0 /var/ftp/centos7
    21. #复制内核文件即初始化镜像文件到TFTP根目录下
    22. cp /var/ftp/centos7/isolinux/vmlinuz /var/lib/tftpboot/
    23. cp /var/ftp/centos7/isolinux/initrd.img /var/lib/tftpboot/
    24. #复制pxelinux.0引导程序到TFTP根目录下
    25. cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
    26. #准备ks应答文件到ftp服务器上
    27. echo "install
    28. keyboard 'us'
    29. rootpw --plaintext 123
    30. url --url=\"ftp://$(ifconfig ens33|grep netmask|tr -s " "|cut -d " " -f3)/centos7\"
    31. lang en_US
    32. firewall --disabled
    33. auth --useshadow --passalgo=sha512
    34. text
    35. selinux --disabled
    36. skipx
    37. reboot
    38. timezone Africa/Abidjan
    39. bootloader --location=mbr
    40. zerombr
    41. clearpart --all --initlabel
    42. part /boot --fstype=\"xfs\" --size=4096
    43. part swap --fstype=\"swap\" --size=4096
    44. part / --fstype=\"xfs\" --grow --size=1
    45. %post --interpreter=bash
    46. useradd xueyin
    47. echo \"123456\"|passwd --stdin xueyin
    48. %end" > /var/ftp/ks.cfg
    49. mkdir /var/lib/tftpboot/pxelinux.cfg
    50. echo "default linux
    51. timeout 60
    52. label linux
    53. kernel vmlinuz
    54. append initrd=initrd.img method=ftp://${IP}/centos7 ks=ftp://${IP}/ks.cfg
    55. " > /var/lib/tftpboot/pxelinux.cfg/default
    56. #开启tftp服务和ftp服务
    57. systemctl start tftp
    58. systemctl start vsftpd
    59. #关闭防火墙和增强型安全机制,我电脑已经设置默认永久关闭的
    60. systemctl stop firewalld.service
    61. setenforce 0
  • 相关阅读:
    C++11 ——— 线程库
    身份证实名认证接口的三种方式、C#实名认证接口
    CMake库搜索函数居然不搜索LD_LIBRARY_PATH
    matlab神经网络所有传递函数(激活函数)公式详解
    2022年下半年 软件设计师 上午试卷(前21题)
    MPI简谈
    怎样考过PMP?零经验的我这样做
    Real-Time Rendering——9.6 Microgeometry微观几何
    强化学习各种符号含义解释
    算法讨论题 —— Java实现两数之和
  • 原文地址:https://blog.csdn.net/liu_xueyin/article/details/134517391