• Linux系统——PXE高效能批量网络装机


    PXE:Pre-boot Excution Environment,预启动执行环境,石油Intel公司开发的网络引导技术,工作在Client、Server模式,允许客户机通过网络从远程服务器下载阴道镜像,并记载安装文件或者整个操作系统。
    搭建PXE网络体系,必须要满足一下条件:
    1. 客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。
    2. 网络中有一台DHCP服务器,一边为客户机分配地址、指定引导文件位置
    服务器通过TFTP简单文件传输协议提供引导镜像文件的下载。


    工作过程:
    工作站开机后,PXE BootROM(自启动芯片)获得控制权之前先做自我测试,然后以广播形式发出一个请求FIND帧。如果服务器收到工作站所送出的要求,就会送回DHCP回应,内容包括用户端的IP地址,预设通讯通道及开机应许昂文件。否则,服务器会忽略这个要求。工作站收到服务器发回的响应后则会回应一个帧,以请求传送启动所需文件。之后,将有更多的讯息在工作站与服务器之间作应答,用以决定启动参数。BootROM由TFTP通信协议从服务器下载开机映像档,这个映像档就是软盘的映像文件。工作站树勇TFTP协议接受启动文件后,将控制权转交启动快,引导操作系统,完成远程启动。
    #### 搭建PXE远程安装服务器
    1. 安装并启动TFTP服务

    ```
    [root@localhost ~]# mkdir -p /var/ftp/centos6
    [root@localhost ~]# cd /var/ftp/centos6/
    [root@localhost centos6]# cp -rp /media/cdrom/* .
    [root@localhost ~]# mount /dev/sr0 /media/cdrom
    mount: block device /dev/sr0 is write-protected, mounting read-only
    [root@localhost ~]# yum -y install tftp-server
    [root@localhost centos6]# vim /etc/xinetd.d/tftp
    # default: off
    # description: The tftp server serves files using the trivial file transfer
    # protocol. The tftp protocol is often used to boot diskless
    # workstations, download configuration files to network-aware printers,
    # and to start the installation process for some operating systems.
    service tftp
    {
    socket_type = dgram
    protocol = udp
    wait = no # 无需等待,同一时刻可以多个客户端连接
    user = root
    server = /usr/sbin/in.tftpd
    server_args = -s /var/lib/tftpboot #tftp服务的根目录
    disable = no #开启tftp服务
    per_source = 11
    cps = 100 2
    flags = IPv4
    }

    ```
    2. 启动tftp

    ```
    [root@localhost centos6]# /etc/init.d/xinetd start
    Starting xinetd: [ OK ]
    [root@localhost centos6]# chkconfig tftp on
    ```
    3. 准备Linux内核、初始化镜像文件

    ```
    [root@localhost ~]# cd /var/ftp/centos6/isolinux/
    [root@localhost isolinux]# ls
    boot.cat initrd.img memtest vesamenu.c32
    boot.msg isolinux.bin splash.jpg vmlinuz
    grub.conf isolinux.cfg TRANS.TBL
    [root@localhost isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot/
    [root@localhost isolinux]# ls /var/lib/tftpboot/
    initrd.img vmlinuz

    ```
    4. 准备PXE引导程序、启动菜单文件
    准备引导程序

    ```
    [root@localhost isolinux]# yum -y install syslinux
    [root@localhost isolinux]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    [root@localhost isolinux]# ls /var/lib/tftpboot/
    initrd.img pxelinux.0 vmlinuz
    [root@localhost isolinux]#

    ```
    准备启动菜单

    ```
    [root@localhost ~]# cp /var/ftp/centos6/isolinux/isolinux.cfg /var/lib/tftpboot/
    [root@localhost ~]# cd /var/lib/tftpboot/
    [root@localhost tftpboot]# chmod 644 isolinux.cfg
    [root@localhost tftpboot]# vim isolinux.cfg

    default linux #改个名字
    prompt 0 #不进行交互
    #timeout 600

    display boot.msg

    #menu background splash.jpg
    #menu title Welcome to CentOS 6.5!
    #menu color border 0 #ffffffff #00000000
    #menu color sel 7 #ffffffff #ff000000
    #menu color title 0 #ffffffff #00000000
    #menu color tabmsg 0 #ffffffff #00000000
    #menu color unsel 0 #ffffffff #00000000
    #menu color hotsel 0 #ff000000 #ffffffff
    #menu color hotkey 7 #ffffffff #ff000000
    #menu color scrollbar 0 #ffffffff #00000000

    label linux
    menu label ^Install or upgrade an existing system
    menu default
    kernel vmlinuz
    append initrd=initrd.img
    label text #对原数据进行更改
    menu label Install system with ^basic video driver
    kernel vmlinuz
    append text initrd=initrd.img xdriver=vesa nomodeset #对原数据进行更改
    label rescue
    menu label ^Rescue installed system
    kernel vmlinuz
    append rescue initrd=initrd.img rescue #对原数据进行更改
    label local
    menu label Boot from ^local drive
    localboot 0xffff
    label memtest86
    menu label ^Memory test
    kernel memtest
    append -
    [root@localhost tftpboot]# cd /var/lib/tftpboot/
    [root@localhost tftpboot]# mkdir pxelinux.cfg
    [root@localhost tftpboot]# mv isolinux.cfg ./pxelinux.cfg/default

    ```
    5. 安装并启动DHCP服务(pxe服务端)

    ```
    [root@localhost tftpboot]# yum -y install dhcp
    [root@localhost tftpboot]# cp /usr/share/doc/dhcp*/dhcpd.conf.sample .
    [root@localhost tftpboot]# cat dhcpd.conf.sample > /etc/dhcp/dhcpd.conf
    [root@localhost tftpboot]# vim /etc/dhcp/dhcpd.conf
    # dhcpd.conf
    #
    # Sample configuration file for ISC dhcpd
    #

    # option definitions common to all supported networks...
    option domain-name "www.yunjisuan.com";
    option domain-name-servers 192.168.239.2;

    default-lease-time 21600;
    max-lease-time 43200;

    # Use this to enble / disable dynamic dns updates globally.
    #ddns-update-style none;

    # If this DHCP server is the official DHCP server for the local
    # network, the authoritative directive should be uncommented.
    #authoritative;

    # Use this to send dhcp log messages to a different log file (you also
    # have to hack syslog.conf to complete the redirection).
    log-facility local7;

    # No service will be given on this subnet, but declaring it helps the
    # DHCP server to understand the network topology.
    # This is a very basic subnet declaration.

    subnet 192.168.239.0 netmask 255.255.255.0 {
    range 192.168.239.100 192.168.239.200;
    option routers 192.168.239.2;
    next-server 192.168.239.132; #PXE的IP地址
    filename "pxelinux.0";

    }
    [root@localhost tftpboot]# /etc/init.d/dhcpd start
    Starting dhcpd: [ OK ]
    [root@localhost tftpboot]# netstat -antup | grep 67
    udp 0 0 0.0.0.0:67 0.0.0.0:* 1528/dhcpd
    [root@localhost tftpboot]# yum -y install vsftpd
    [root@localhost tftpboot]# /etc/init.d/vsftpd start
    Starting vsftpd for vsftpd: [ OK ]

    ```
    6. 测试连接ftp功能(pxe客户端)
    ```
    [root@localhost ~]# mount /dev/sr0 /media/cdrom
    mount: block device /dev/sr0 is write-protected, mounting read-only
    [root@localhost ~]# yum -y install ftp
    [root@localhost ~]# ftp 192.168.239.132
    Connected to 192.168.239.132 (192.168.239.132).
    220 (vsFTPd 2.2.2)
    Name (192.168.239.132:root): ftp
    331 Please specify the password.
    Password: #密码为空
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls
    227 Entering Passive Mode (192,168,239,132,90,93).
    150 Here comes the directory listing.
    drwxr-xr-x 7 0 0 4096 Dec 02 15:32 centos6
    drwxr-xr-x 2 0 0 4096 Mar 22 2017 pub
    226 Directory send OK.
    ftp> cd centos6
    250 Directory successfully changed.
    ftp> ls
    227 Entering Passive Mode (192,168,239,132,90,223).
    150 Here comes the directory listing.
    -r--r--r-- 1 0 0 14 Nov 29 2013 CentOS_BuildTag
    dr-xr-xr-x 3 0 0 4096 Nov 29 2013 EFI
    -r--r--r-- 1 0 0 212 Nov 27 2013 EULA
    -r--r--r-- 1 0 0 18009 Nov 27 2013 GPL
    dr-xr-xr-x 2 0 0 282624 Nov 29 2013 Packages
    -r--r--r-- 1 0 0 1354 Nov 27 2013 RELEASE-NOTES-en-US.html
    -r--r--r-- 1 0 0 1706 Nov 27 2013 RPM-GPG-KEY-CentOS-6
    -r--r--r-- 1 0 0 1730 Nov 27 2013 RPM-GPG-KEY-CentOS-Debug-6
    -r--r--r-- 1 0 0 1730 Nov 27 2013 RPM-GPG-KEY-CentOS-Security-6
    -r--r--r-- 1 0 0 1734 Nov 27 2013 RPM-GPG-KEY-CentOS-Testing-6
    -r--r--r-- 1 0 0 3380 Nov 29 2013 TRANS.TBL
    dr-xr-xr-x 3 0 0 4096 Nov 29 2013 images
    dr-xr-xr-x 2 0 0 4096 Nov 29 2013 isolinux
    dr-xr-xr-x 2 0 0 4096 Nov 29 2013 repodata
    226 Directory send OK.
    ftp> exit
    221 Goodbye.


    ```
    7. 新建虚拟机进行验证
    (1)调整BIOS,一边从网络引导(不调整默认从网络引导)
    在工具栏的【虚拟机】选项,选择【电源】,点击【打开电源时进入固件】进入BIOS界面,将network boot from Intel E1000调整到第一位


    (2)自动获取IP地址,并指向centos安装源



    在URL setup输入ftp的URL(连接对方的IP地址),进行正常装机
    #### 实现kickstart无人值守安装
    1. 创建应答文件

    ```
    [root@localhost ~]# mount /dev/sr0 /media/cdrom
    [root@localhost ~]# yum -y install system-config-kickstart

    ```








  • 相关阅读:
    Factorial Trailing Zeroes
    Convert Integer A to Integer B
    函数防抖、函数节流
    localstorage sessionstorage和cookie的区别
    element中表格中的表头与表格内容边框错位的解决方法
    解决Minio生成图片文件的分享链接无法正常下载的问题
    gin编写后端API的使用技巧
    YOLOV5源码解读-export.py网络结构、配置文件
    《三、YOLOV3细节原理全解析》
    《二、YOLOV2细节原理全解析》
  • 原文地址:https://www.cnblogs.com/daisy118/p/10086447.html
Copyright © 2020-2023  润新知