• 一键部署pxe


    #!/bin/bash

    echo "=============================PXE 自动安装==================================="

    #关闭防火墙,安全防护中心
    systemctl stop firewalld.service &> /dev/null
    systemctl disable firewalld.service &> /dev/null
    setenforce 0 &> /dev/null

    echo "温馨提示:请新增一张网卡如ens36,设置为仅主机模式,共服务使用。
                    IP设置请根据虚拟机的虚拟网络编辑器的IP来自行定义。
                    祝您好运!!!!!!!!!!!!!!!!!!!!!                                                                                   
                    本脚本安装系统,默认登录用户名为:root  密码为:root   请及时修改!!!   

     下面开始安装#########################################################"

    echo "==============ens36网卡配置================================="

    cd /etc/sysconfig/network-scripts
    cp ifcfg-ens33 ifcfg-ens36
    sed -i '/IPADDR/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
    sed -i '/NETMASK/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
    sed -i '/GATEWAY/d' /etc/sysconfig/network-scripts/ifcfg-ens36 >&/dev/null
    sed -i '/DNS/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
    sed -i '/DEVICE/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
    sed -i '/NAME/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
    sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
    sed -i '/BOOTPROTO/d' /etc/sysconfig/network-scripts/ifcfg-ens36 &>/dev/null
    read -p "请输入IP地址: " IP
    read -p "请输入子网掩码地址: " NET
    read -p "请输入网关地址: " GAT
    read -p "请输入DNS地址: " dns
    echo "IPADDR=$IP
    NETMASK=$NET
    GATEWAY=$GAT
    DNS1=$dns
    BOOTPROTO=static
    NAME=ens36
    DEVICE=ens36" >> /etc/sysconfig/network-scripts/ifcfg-ens36
    echo "网卡配置完成"

    #重启网络配置,生效ens36
    systemctl restart network &> /dev/null
      if [ $? -eq 0 ];then
        echo "网络服务重启成功"
        else
       echo "网络服务重启失败,请检查"
      fi

    echo "==============安装配置DHCP服务================================="
    #判断dhcp是否安装
    rpm -q dhcp &> /dev/null
    if [ $? -eq 0 ];then
      echo "DHCP服务已安装" 
    else
      yum -y install dhcp &> /dev/null
    fi
    rm -rf /etc/dhcp/dhcpd.conf &> /dev/null
    cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf &> /dev/null
    read -p "输入DHCP网段: " wangduan
    read -p "输入子网掩码: " yanma
    read -p "输入地址池(中间以空格间隔): " dizhichi
    read -p "输入DHCP网关IP地址: " wangguan

    echo "
    ddns-update-style none;
    subnet $wangduan netmask $yanma {
      range $dizhichi;
      option routers $IP;
      option domain-name-servers 114.114.114.114;
      next-server $IP;
      filename \"pxelinux.0\";
    }" >>/etc/dhcp/dhcpd.conf

    systemctl start dhcpd &> /dev/null
       if [ $? -eq 0 ];then 
         echo "dhcp服务启动成功"
       else 
         echo "dhcp服务启动失败"
       fi
    systemctl enable dhcpd &> /dev/null
    echo "==================配置TFTP、xinetd============================="
    #判断TFTP是否存在
    rpm -q tftp-server &> /dev/null
    if [ $? -eq 0 ];then 
      echo "TFTP服务已安装"
    else
      yum -y install tftp-server &> /dev/null
    fi
    #判断xinetd是否存在
    rpm -q xinetd &> /dev/null
    if [ $? -eq 0 ];then
      echo "tftp服务已安装"
    else
      yum -y install xinetd &> /dev/null
    fi
    #修改TFTP的配置文件
    sed -i '10s/yes/no/' /etc/xinetd.d/tftp
    sed -i '14s/yes/no/' /etc/xinetd.d/tftp

    systemctl start xinetd &> /dev/null
    if [ $? -eq 0 ];then
         echo "xinetd服务启动成功"
       else
         echo "xinetd服务启动失败"
       fi

    systemctl enable  xinetd &> /dev/null
    systemctl start tftp &> /dev/null
    if [ $? -eq 0 ];then
         echo "tftp服务启动成功"
       else
         echo "tftp服务启动失败"
       fi


    systemctl enable tftp &> /dev/null

    #挂载镜像
    mount /dev/cdrom /mnt &> /dev/null

    #复制镜像中的文件‘
    cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/

    cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/

    echo "=================安装pxelinux.0和syslinux================="
    yum provides */pxelinux.0 -y &> /dev/null
    yum -y install syslinux &> /dev/null
    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 
    mkdir /var/lib/tftpboot/pxelinux.cfg
    echo "default auto 
    prompt 0
    label auto  
          kernel vmlinuz 
          append initrd=initrd.img method=ftp://$IP/centos7 ks=ftp://$IP/ks.cfg 
    label linux text
          kernel vmlinuz 
          append text initrd=initrd.img method=ftp://$IP/centos7 ks=ftp://$IP/ks.cfg

    label linux rescue
          kernel vmlinuz 
          append rescue initrd=initrd.img method=ftp://$IP/centos7 ks=ftp://$IP/ks.cfg " >> /var/lib/tftpboot/pxelinux.cfg/default

    echo "=======================安装VSFTP============================="
    #安装FTP

    rpm -q vsftpd &> /dev/null
    if [ $? -eq 0 ];then
      echo "VSFTP服务已安装"
    else
      yum -y install vsftpd &> /dev/null
    fi
    mkdir /var/ftp/centos7
    cd /var/ftp/centos7
    cp -rf /mnt/* ./
    systemctl start vsftpd &> /dev/null
    if [ $? -eq 0 ];then
      echo "vsftp服务启动成功"
    else 
      echo "vsftp服务启动失败"
    fi

    systemctl enable vsftpd &> /dev/null

    yum -y install system-config-kickstart &> /dev/null

    if [ $? -eq 0 ];then
      echo "kickstart安装成功"
    else
      echo "kickstart安装失败"
    fi


    echo "
    #platform=x86, AMD64, 或 Intel EM64T
    #version=DEVEL
    # Install OS instead of upgrade
    install
    # Keyboard layouts
    keyboard 'us'
    # Root password
    rootpw --plaintext root
    # Use network installation
    url --url="ftp://192.168.68.68/centos7"
    # System language
    lang en_US
    # System authorization information
    auth  --useshadow  --passalgo=sha512
    # Use graphical install
    graphical
    firstboot --disable
    # SELinux configuration
    selinux --disabled

    # Firewall configuration
    firewall --disabled
    # Network information
    network  --bootproto=dhcp --device=ens33
    # Reboot after installation
    reboot
    # System timezone
    timezone Asia/Shanghai
    # System bootloader configuration
    bootloader --location=mbr
    # Clear the Master Boot Record
    zerombr
    # Partition clearing information
    clearpart --all --initlabel
    # Disk partitioning information
    part /boot --fstype="xfs" --size=1024
    part swap --fstype="swap" --size=4096
    part / --fstype="xfs" --grow --size=1 

    %packages
    @^gnome-desktop-environment
    @base
    @core
    @guest-agents
    @guest-desktop-agents
    @input-methods
    @internet-browser
    @java-platform
    @multimedia
    @network-file-system-client
    @networkmanager-submodules
    @print-client
    @x11
    chrony
    kexec-tools

    %end" > /var/ftp/ks.cfg  


    echo "你的运气太好了!!!
          可以进行批量系统安装了!!!"


     

  • 相关阅读:
    分组卷积的思想神了
    企业架构LNMP学习笔记15
    MyBatis中动态 SQL 语句-更复杂的查询业务需求
    文件包含学习笔记总结
    FairLearn 中的 API (一)
    Django学习日志06
    grep wc 与 管道符
    什么是自然语言处理
    运算符重载
    CNN的识别机制
  • 原文地址:https://blog.csdn.net/a_b_e_l_/article/details/126412050