• CentOS7 PXE配合Kickstart实现无人值守自动装机 超详细


    1.系统环境

    节点IP地址
    CentOS 7 服务端192.168.143.145
    测试端自动获取

    2. 准备工作

    准备一台虚拟机(桌面版因为一会需要用到,没有最小化也可以但是需要装桌面的包)
    关闭防火墙和selinux
    安装epel源
    准备一个centos7的镜像

    在服务器中,生成ks.cfg 文件需要system-config-kickstart 工具,而此工具依赖于X Windows,所以我们需要安装X Windows 和Desktop 并重启系统。startx命令开启桌面化。

    //查看组包列表
    [root@localhost ~]# yum grouplist
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.cn99.com
     * epel: mirrors.bfsu.edu.cn
     * extras: mirrors.ustc.edu.cn
     * updates: mirrors.aliyun.com
    Installed Environment Groups:
       KDE Plasma Workspaces
    Available Environment Groups:
       Minimal Install
       Compute Node
       Infrastructure Server
       File and Print Server
       Cinnamon Desktop
       MATE Desktop
       Basic Web Server
       Virtualization Host
       Server with GUI
       GNOME Desktop
       Development and Creative Workstation
    Available Groups:
       Cinnamon
       Compatibility Libraries
       Console Internet Tools
       Development Tools
       Educational Software
       Electronic Lab
       Fedora Packager
       General Purpose Desktop
       Graphical Administration Tools
       Haskell
       LXQt Desktop
       Legacy UNIX Compatibility
       MATE
       Milkymist
       Scientific Support
       Security Tools
       Smart Card Support
       System Administration Tools
       System Management
       TurboGears application framework
       Xfce
    Done
    [root@localhost ~]# yum -y groups install "X Window System"
    [root@localhost ~]# yum -y groups install "KDE Plasma Workspaces"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    3.部署过程

    [root@localhost ~]# yum install -y dhcp vsftpd tftp tftp-server syslinux xinetd    
    [root@localhost ~]# mkdir -p /var/ftp/dvd      
    [root@localhost ~]# chown -R ftp:ftp /var/ftp/dvd/   
    [root@localhost ~]# mount /dev/cdrom /mnt/     
    [root@localhost ~]# cp -r /mnt/* /var/ftp/dvd/    
    [root@localhost ~]# systemctl enable --now vsftpd
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    浏览器访问测试能否访问到ftp的文件

    图一、startx命令开启桌面化

    图二、浏览器访问ftp://192.168.143.145/dvd/的结果

    配置DHCP服务器

    [root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
    cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
    [root@localhost ~]# vi /etc/dhcp/dhcpd.conf 
    定位27行修改如下内容
    subnet 192.168.143.0 netmask 255.255.255.0 {
                    range 192.168.143.100 192.168.143.200;    //设置dhcp分配的IP地址的范围
                    option routers 192.168.143.2;   //设置分配的网关
                    next-server 192.168.143.145;   //设置TFTP服务器的IP地址
                    filename "pxelinux.0";   //设置客户端在向TFTP服务器请求找的第一个文件名称
    }
    [root@localhost ~]# systemctl enable --now dhcpd   
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    配置TFTP服务器

    [root@localhost ~]# mkdir /tftpboot    //创建TFTP的工作目录
    [root@localhost ~]# vi /etc/xinetd.d/tftp    //编辑TFTP对的配置文件
    service tftp
    {
            socket_type             = dgram
            protocol                = udp
            wait                    = yes
            user                    = root
            server                  = /usr/sbin/in.tftpd
            server_args             = -s /tftpboot     //修改正确的工作目录的路径
            disable                 = no      //修改为no  表示开启TFTP服务器
            per_source              = 11
            cps                     = 100 2
            flags                   = IPv4
    }
    [root@localhost ~]# mkdir -p /tftpboot/pxelinux.cfg 
    [root@localhost ~]# cp -a /var/ftp/dvd/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
    [root@localhost ~]# cp -a /usr/share/syslinux/pxelinux.0 /tftpboot/
    [root@localhost ~]# chmod 644 /tftpboot/pxelinux.cfg/default 
    [root@localhost ~]# cp -a /var/ftp/dvd/isolinux/* /tftpboot/             
    [root@localhost ~]# systemctl enable --now xinetd  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    构建ks文件(以下操作均在图形化界面操作)

    [root@localhost ~]# yum install -y system-config-kickstart //安装相应软件
    安装完成以后输入以下命令进行配置ks文件
    system-config-kickstart 在图形化界面输入!!!!

    基本配置

    安装方法

    引导装载程序选项

    分区信息
    这里需要划分二个分区分别是:/19G /boot 1G

    网络配置

    防火墙配置

    然后点击文件进行保存操作(保存到root的家目录下)

    基本配置完成保存

    修改ks.cfg文件

    [root@localhost ~]# ls //默认root的家目录下存在以下文件
    anaconda-ks.cfg initial-setup-ks.cfg ks.cfg
    [root@localhost ~]# vi /ks.cfg

    //末尾添加基础base和最小化安装

    %packages
    @base
    @^minimal
    chrony
    %end

    [root@localhost ~]# cp ks.cfg /var/ftp/ //复制ks.cfg文件到/var/ftp目录下

    修改/tftpboot/pxelinux.cfg/default 文件 添加如下内容

    vi /tftpboot/pxelinux.cfg/default 
    ....以上多行
    label linux
       menu label ^Install or upgrade an existing system
       menu default //此行需要添加
       kernel vmlinuz
       append initrd=initrd.img  ks=ftp://192.168.143.145/ks.cfg  //指定ks.cfg文件的路径
    label check
      menu label Test this ^media & install CentOS 7
    
    menu default //此行需要删除
    
    kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
    ....以下多行
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    //重启服务开始测试

    [root@localhost ~]# systemctl restart vsftpd

    效果测试

    然后新建一台没有任何镜像的虚拟机
    注意:硬件配置需要大于等于之前配置的20G硬盘,内存需要大于2G

    开启虚拟机过了一会之后出现如下界面

    安装界面如下

    安装完成以后的界面如下

  • 相关阅读:
    CAT1 4G+以太网开发板232数据通过4G模块TCP发到服务器
    集成学习01_xgboost参数讲解与实战
    zigbee cc2530的室内/矿井等定位系统RSSI原理
    TensorFlow2.0教程2-全连接神经网络以及深度学习技巧
    BRD、MRD 和 PRD 之间的区别与联系
    虚幻阴影整理
    Linux企业运维之k8s-yaml编写
    轻量封装WebGPU渲染系统示例<4>-CubeMap/天空盒(源码)
    UI自动化 --- 微软UI Automation
    【FPGA教程案例44】图像案例4——基于FPGA的图像中值滤波verilog实现,通过MATLAB进行辅助验证
  • 原文地址:https://blog.csdn.net/hyhxy0206/article/details/126111902