美文网首页
PXE实现批量安装部署(CentOS7)

PXE实现批量安装部署(CentOS7)

作者: 潘祖龙 | 来源:发表于2017-11-30 10:32 被阅读0次

    一、PXE简介

    PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

    通过传统的方式安装和部署计算机时,都会要求通过交互的方式,回答各类问题,以完成安装和部署任务,过程繁琐,且无法实现自动化。红帽公司开发了 Kickstart 的安装方法,通过 ks 文件可以解决所有普通安装方式中需要回答的问题。可以通过 system-config-kickstart 工具定制 ks 文件,也可以通过相关语法来手工编写安装脚本。

    二、启动步骤详解

    1、服务器加电启动,从DHCP服务器获取IP地址并加载(PXEClient)。
    2、通过TFTP服务器获取网络引导程序(pxelinux.0)。
    3、引导程序读取配置文件(pxelinux.cfg本例中文件名为:default)。
    4、引导程序加载文件系统初始化(initrd)程序和内核初始镜像(vmlinuz)、自动应答程序(ks.cfg)。
    5、按自动应答文件中指定的网络安装方式,以FTP方式安装linux系统。

    三、服务端安装配置

    pxe环境服务器地址:192.168.100.35
    pxe客户机分配地址:192.168.100.97 - 192.168.100.125
    安装步骤:
    1)配置DHCP,用于给客户端提供IP地址及其它信息
    2)配置TFTP服务器,用于提供客户端PXE引导所必须的文件
    3)配置FTP服务器,用于存放安装文件
    4)配置Kickstart,用于自动应答安装
    5)使用PXE功能引导客户机
    关闭防火墙

    启动: systemctl start firewalld
    查看状态: systemctl status firewalld 
    停止: systemctl disable firewalld
    禁用: systemctl stop firewalld
    getenforce
    ##设置SELinux 成为permissive模式
    ##setenforce 1 设置SELinux 成为enforcing模式
    setenforce 0
    vi /etc/selinux/config
    将SELINUX=enforcing改为SELINUX=disabled 
    

    1、安装DHCP和TFTP

    DHCP 和 TFTP 服务可以选择单独分别去安装,也可以通过安装 dnsmasq 服务,来实现 DHCP 和 TFTP 的功能。

    (1)安装 dnsmasq 服务

    yum install dnsmasq –y
    vi /etc/dnsmasq.conf
    systemctl start  dnsmasq
    systemctl enable dnsmasq
    ###/etc/dnsmasq.conf内容太长了,直接粘贴在最后面
    bogus-priv
    filterwin2k
    #interface=eth0
    dhcp-range=192.168.100.99,192.168.100.125,12h
    dhcp-boot=pxelinux.0
    enable-tftp
    tftp-root=/var/tftp    # tftp目录默认是没有的,需要手动创建
    dhcp-authoritative
    

    (2)拷贝启动文件到/var/tftp,上传linux系统镜像到服务器上。

    mkdir /media/cdrom
    mount  mount -o loop *.iso  /media/cdrom/
    mkdir /var/tftp/centos7
    cp /media/cdrom/images/pxeboot/vmlinuz    /var/tftp/centos7/    # 拷贝内核镜像文件
    cp /media/cdrom/images/pxeboot/initrd.img  /var/tftp/centos7/  # 拷贝文件系统镜像
    

    (3)生成pxe启动文件pxelinux.0

    yum install -y syslinux                           # 安装pxelinux.0所需要的包
    rpm -ql syslinux | grep "pxelinux.0"              # 查询文件所在目录
    cp /usr/share/syslinux/pxelinux.0 /var/tftp/      # 拷贝pxelinux.0文件到tftp根目录
    

    (4)准备默认的菜单配置文件

    mkdir /var/tftp/pxelinux.cfg/         # 创建pxelinux.cfg目录,固定目录名称
    vi /var/tftp/pxelinux.cfg/default    # default文件,必须为这个名称
    # 编辑内容如下
    default centos7
    prompt 1
    timeout 15
    display menu
    label centos7
      kernel centos7/vmlinuz
      append initrd=cenots7/initrd.img ks=ftp://192.168.100.98/pub/ks-centos7.cfg    # 这个地方指定了ks.cfg文件下载路径,后边会生成该文件
    

    (5)kickstart配置文件ks-centos7.cfg

    #platform=x86, AMD64, or Intel EM64T
    #version=DEVEL
    # Firewall configuration
    firewall --disabled
    # Install OS instead of upgrade
    install
    # Use FTP installation media
    url --url="ftp://192.168.100.98/pub/centos7"
    # Root password
    rootpw --iscrypted $1$lgzpzCCE$Y6xpvPBLom/J4zAipUjfr.  ##此密码为123.com
    # System authorization information
    auth useshadow passalgo=sha512
    # Use graphical install
    graphical
    # Run the Setup Agent on first boot
    firstboot --enable
    # ignoredisk --only-use=sda
    # Keyboard layouts
    keyboard --vckeymap=us --xlayouts='us'
    # System language
    lang en_US.UTF-8
    # SELinux configuration
    selinux disabled
    # Installation logging level
    logging level=info
    # System timezone
    timezone Asia/Shanghai --isUtc
    # System bootloader configuration
    # Reboot afer installing
    reboot  ##一定要有此 选项否则操作系统安装完后不会自动重启。
    # Network information
    network --bootproto=static --ip=192.168.100.99 --netmask=255.255.255.224 --gateway=192.168.100.126
    network --hostname=localhost.localdomain
    ######
    bootloader location=mbr
    clearpart --all --initlabel
    part swap --asprimary --fstype="swap" --size=1024
    part /boot --fstype xfs --size=300
    part pv.01 --size=1 --grow
    volgroup root_vg01 pv.01
    logvol / --fstype xfs --name=lv_01 --vgname=root_vg01 --size=1 --grow
    %packages    ###要安装的包
    @^minimal
    @core
    acpid
    iputils
    man
    net-tools
    ntp
    ntpdate
    parted
    vim-enhanced
    wget
    %end   ###以%end结尾
    #%addon com_redhat_kdump --disable --reserve-mb='auto' 
    #%end
    

    2、安装FTP

    简单文件传输协议(TFTP)主要用于为客户机与服务器之间进行简单文件传输的协议。在 PXE 早期启动过程中,主要通过 TFTP 协议传输”pxelinux.0”。文件传输协议(FTP),适用于大量文件传输的情形,在后期安装过程,主要通过 FTP 协议传输 Linux 操作系统的安装包。
    1、安装vsftpd服务
    2、提供操作系统镜像文件
    FTP 默认配置即可,我们需要适用匿名用户。通过ftp安装操作系统,我们需要把操作系统镜像文件拷贝到这个匿名用户目录。前面已经把镜像上传并mount了。现在直接拷贝,为每个系统版本新建一个目录
    mkdir /var/ftp/pub/centos7
    cp -fr /media/cdrom/* /var/ftp/pub/centos7/ # /var/ftp/pub是ftp的匿名用户目录
    3、启动ftp服务

    yum install -y vsftpd
    systemctl start  vsftpd    # 启动ftp服务
    systemctl enable vsftpd    # 设置开机启动
    

    相关文章

      网友评论

          本文标题:PXE实现批量安装部署(CentOS7)

          本文链接:https://www.haomeiwen.com/subject/tyzybxtx.html