• Shell:一键部署pxe


            shell脚本能为我们带来很多便利,这里我就编写了一个一键部署pex的shell脚本

    一、前置操作

     添加一块网卡并改为net1模式

     二、修改脚本某些参数

    查看一下自己新网卡的名称,我这里是ens36

    然后更改ip值就行 和dhcp配置文件中的IP值以及/var/lib/tftpboot/pxelinux.0/default里的指向ftp的地址就行,都改成同一个

    实在不理解的可以看我另一篇博客有详细说明:

    PXE&&kickstart原理和配置_IT.cat的博客-CSDN博客

    1. #!/bin/bash
    2. #==========================================================================
    3. # User yz
    4. # PEX一键部署
    5. # date 2022.7.26
    6. #==========================================================================
    7. ###################关闭防火墙#############################
    8. systemctl stop firewalld
    9. systemctl disable firewalld
    10. setenforce 0
    11. #####################配置网卡#############################
    12. cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36
    13. sed -i '/GATEWAY/s/^/#/' /etc/sysconfig/network-scripts/ifcfg-ens36 #需要修改网卡名称
    14. sed -i 's/ens33/ens36/' /etc/sysconfig/network-scripts/ifcfg-ens36
    15. sed -i '/UUID/s/^/#/' /etc/sysconfig/network-scripts/ifcfg-ens36
    16. sed -i '/DNS/s/^/#/' /etc/sysconfig/network-scripts/ifcfg-ens36
    17. sed -i 's/192.168.130.152/192.168.59.100/' /etc/sysconfig/network-scripts/ifcfg-ens36
    18. # ^^ 需要修改IP地址
    19. systemctl restart network
    20. ###################安装软件###############################
    21. #检测网络
    22. ping -c 1 -i 0.1 www.baidu.com > /dev/null
    23. if [ $? -eq 0 ]
    24. then
    25. yum -y install vsftpd tftp xinetd dhcpd syslinux tftp-server > /dev/null
    26. #################配置dhcp服务##########################
    27. cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    28. echo "ddns-update-style none;
    29. subnet 192.168.59.0 netmask 255.255.255.0 { #这里也需要修改成与新网卡同一网段的
    30. range 192.168.59.110 192.168.59.200;
    31. option routers 192.168.59.100;
    32. option domain-name-servers 114.114.114.114;
    33. next-server 192.168.59.100;
    34. filename\"pxelinux.0\";
    35. } " >> /etc/dhcp/dhcpd.conf
    36. ##################配置tftp服务##########################
    37. sed -i '/disable/s/yes/no/' /etc/xinetd.d/tftp
    38. ##################配置tftp需要的共享文件########################
    39. mount /dev/cdrom /mnt
    40. cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot
    41. cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot
    42. #################准备pxe引导镜像文件#######################
    43. cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
    44. #################手工配置dafault菜单文件##################
    45. mkdir /var/lib/tftpboot/pxelinux.cfg
    46. touch /var/lib/tftpboot/pxelinux.cfg/default
    47. echo " default auto
    48. prompt 0 #ftp的指向IP都需要改成新网卡IP
    49. label auto
    50. kernel vmlinuz
    51. append initrd=initrd.img method=ftp://192.168.59.100/centos7 ks=ftp://192.168.59.100/ks.cfg
    52. label linux text
    53. kernel vmlinuz
    54. append text initrd=initrd.img method=ftp://192.168.59.100/centos7 ks=ftp://192.168.59.100/ks.cfg
    55. label linux rescue
    56. kernel vmlinuz
    57. append rescue initrd=initrd.img method=ftp://192.168.59.100/centos7 ks=ftp://192.168.59.100/ks.cfg " >> /var/lib/tftpboot/pxelinux.cfg/default
    58. ##################配置ftp,准备centos安装源##############
    59. mkdir /var/ftp/centos7
    60. cp -rf /mnt/* /var/ftp/centos7
    61. #################配置无人值守######################
    62. #要先配置无人值守,再执行脚本
    63. yum -y install system-config-kickstart > /dev/null #安装system-config-kickstart工具
    64. #################开启服务############################# vsftpd tftp xinetd dhcpd
    65. systemctl start vsftpd tftp xinetd dhcpd
    66. else
    67. echo "网络出现问题无法安装,无法进行下一步"
    68. fi

            配置完后还需要配置无人值守,这里前面的博客也有详细说明如何配置,可以直接按照kickstart那段开始配置

    PXE&&kickstart原理和配置_IT.cat的博客-CSDN博客

            配置完无人值守我们可以将ks.cfg文件保存下来,后续就不用单独再配置一遍无人值守操作直接拉文件来用就行

     验证

    验证方法我上篇博客也有详细写 主要是创建虚拟机和无人值守文件存放位置

    这里直接演示执行后的过程

     

    到这里再继续等待即可,时间会比较长,要耐心点 

  • 相关阅读:
    【优化求解】基于遗传算法优化PARSEC 方法的翼型形状附matlab代码
    第十四届蓝桥杯第一期模拟赛题解[官方模拟赛]
    使用nsenter在容器内部执行宿主机的命令
    分布式搜索引擎ElasticSearch-1
    Vue中computed和watch的区别
    跨域原理与解决方式
    做好troubleshooting的必要条件
    Spring Security 登录获取用户信息流程分析
    使用装饰器实现python的单例模式
    mac pro M1(ARM)安装:python开发环境
  • 原文地址:https://blog.csdn.net/qq_57377057/article/details/126006055