zoukankan      html  css  js  c++  java
  • PXE+Kickstart无人值守安装系统

    1、PXE和kickstart介绍

    1.1 什么是PXE

    PXE:一种引导方式,进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC) 即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。

    协议分为client和server端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,由PXE client将放置在远端的文件通过网络下载到本地运行。运行工PXE协议需要设置DHCP服务器和TFTP服务器。DHCP服务器用来给PXE client(将要安装系统的主机)分配一个IP地址,由于是给PXE client分配IP地址,所以在配置DHCP服务器时需要增加相应的PXE设置。此外,在PXE client的ROM中,已经存在了TFTP Client。PXE Client通过TFTP协议到Server上下载所需要的文件

    1.2 什么是kickstart

    kickstart是一种无人值守安装方式。Kickstart的工作原理是通过记录典型的安装过程中所需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成Kickstart安装文件的机器),当出现要求填写参数的情况时,安装程序会首先查找Kickstart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。

    2、安装配置kickstart

    PXE安装流程

    环境准备

    节点信息 备注
    server 192.168.253.131  gw:192.168.253.2
    client 被安装机器
    • DHCP 服务器用来给客户机分配IP;
    
    • TFTP 服务器用来存放PXE的相关文件,比如:系统引导文件;
    
    • FTP 服务器用来存放系统安装文件;
    
    • KickStart所生成的ks.cfg配置文件;
    
    • 带有一个 PXE 支持网卡的将安装的主机;

    2.1初始化环境

    关闭防火墙
    systemctl stop firewalld
    systemctl enable firewalld
    
    关闭selinux
    sed -i.bak "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
    setenforce 0  

    2.2安装配置DHCP服务

    [root@m01 ~]# yum -y install dhcp
    [root@m01 ~]# rpm -ql dhcp |grep "dhcpd.conf"
    /etc/dhcp/dhcpd.conf
    /usr/share/doc/dhcp-4.1.1/dhcpd-conf-to-ldap
    /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
    /usr/share/man/man5/dhcpd.conf.5.gz

    cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    vim /etc/dhcpd/dhcpd.conf

    [root@localhost ~]# cat /etc/dhcp/dhcpd.conf
    #
    # DHCP Server Configuration file.
    # see /usr/share/doc/dhcp*/dhcpd.conf.example
    # see dhcpd.conf(5) man page
    #
    subnet 192.168.253.0 netmask 255.255.255.0 {
    option routers 192.168.253.2; #网关地址
    option domain-name-servers 192.168.253.100;#设置给客户端DNS地址
    range 192.168.253.100 192.168.253.200; #可分配IP范围
    option subnet-mask 255.255.255.0;#设置netmask
    default-lease-time 21600;#设置默认IP租用期限
    max-lease-time 43200;#设置最大IP租用期限
    next-server 192.168.253.131; #告知客户点TFTP服务器ip
    filename "pxelinux.0"; #告知客户端从TFTP根目录下载pxelinux.0文件
    }

    [root@localhost ~]#systemctl start dhcpd

    [root@localhost ~]#systemctl enable dhcpd

    2.2配置TFTP服务

    # yum -y install syslinux xinetd tftp-server
    
    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                    = yes
            user                    = root
            server                  = /usr/sbin/in.tftpd
            server_args             = -s /var/lib/tftpboot
            disable                 = no #设置为启动
            per_source              = 11
            cps                     = 100 2
            flags                   = IPv4
    }
    
    # systemctl restart xinetd 
    # systemctl enable xinetd
    
    将pxelinux.0拷贝到/var/lib/tftpboot/
    # cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

    mkdir /var/lib/tftpboot/centos7

    2.3 配置FTP服务

    创建一个目录存放centos7镜像,把对应镜像放进去
    mkdir /iso
    
    创建centos7的目录,可以创建多个,以挂载不同的镜像
    mkdir /var/tfp/centos7
    
    把目录挂载到ftp根目录下
    mount -o loop -t iso9660 /iso/CentOS-7-x86_64-Minimal-1708.iso /var/ftp/centos7
    
    cd /var/ftp/centos7/isolinux/
    cp vesamenu.c32 /var/lib/tftpboot/
    cp vmkinuz /var/lib/tftpboot/centos7
    cp initrd.img /var/lib/tftpboot/centos7

    mkdir pxelinux.cfg
    cp isolinux.cfg /var/lib/tftpboot/centos7/pxelinux.cfg/default
    chmod 644 /var/lib/tftpboot/pxelinux.cfg/default
    vim /var/lib/tftpboot/pxelinux.cfg/default

    default vesamenu.c32
    timeout 60

    display boot.msg

    # Clear the screen when exiting the menu, instead of leaving the menu displayed.
    # For vesamenu, this means the graphical background is still displayed without
    # the menu itself for as long as the screen remains in graphics mode.
    menu clear
    menu background splash.png #菜单背景图片
    menu title CentOS 7
    menu vshift 8
    menu rows 18
    menu margin 8
    menu helpmsgrow 15
    menu tabmsgrow 13

    label centos7 64 <Auto Installation>
    menu label Install CentOS linux ^7 x86_64 <Auto>
    kernel centos7/vmlinuz
    append initrd=centos7/initrd.img inst.stage2=ftp://192.168.253.131/centos7 inst.repo=ftp://192.168.253.131/centos7 inst.ks=ftp://192.168.253.131/centos-7-ks.cfg

    label centos7 64 <Manual Installation>
    menu label Install CentOS Linux ^7 x86_64 <Manual>
    kernel centos7/vmlinuz
    append initrd=centos7u4/initrd.img inst.stage2=ftp://192.168.253.131/centos7

    menu separator # insert an empty line

    label local
    menu label Boot from ^local drive
    localboot 0xffff

    menu end

    创建自动应答文件

    yum -y install system-config-kickstart
    yum -y install xorg-x11-xauth
    
    system-config-kickstart

     

     

     

     

     

    保存路径选择root下

    vim ks.cfg
    #platform=x86, AMD64, or Intel EM64T
    #version=DEVEL
    # Install OS instead of upgrade
    install
    # Keyboard layouts
    keyboard 'us'
    # Root password
    rootpw --iscrypted $1$scD1AAy6$SpSzY1aT49qvr5W/5o8Ze1
    # System language
    lang zh_CN
    # System authorization information
    auth  --useshadow  --passalgo=sha512
    # Use text mode install
    text
    # SELinux configuration
    selinux --disabled
    # Do not configure the X Window System
    skipx
    
    
    # Firewall configuration
    firewall --disabled
    # Reboot after installation
    reboot
    # System timezone
    timezone Asia/Shanghai
    # Use network installation
    url --url="ftp://192.168.253.131/centos7"
    # 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=200
    part swap --fstype="swap" --size=1000
    part / --fstype="xfs" --grow --size=1
    
    #下面的内容为手动添加编写内容,%package开始,%end结尾,中间是需要安装的软件包或者软件包组的名称,这里安装了core和base
    %packages
    @base @core
    %end

    检查又无语法错误

    ksvalidator ks.cfg

    将ks文件移动到/var/lib/tftp下,根据default文件,修改文件名

    mv ks.cfg /var/ftp/centos-7-ks.cfg

    重启FTP

    systemctl start vsftpd
    systemctl enable vsftpd

    3、测试

    新创建一个虚拟机

     这样就成功了!!

  • 相关阅读:
    结对项目 sport club(一)
    结对项目 sport club(三)
    结对项目 sport club(二)
    博客作业
    学生信息管理系统APP需求分析
    随机生成四则运算
    软件介绍
    利用纯css写三角形,弧度箭头,吃豆人,气泡。放大镜,标签的源码
    js中的数据类型隐式转换的三种情况
    javascript基础入门之js中的结构分支与循环语句
  • 原文地址:https://www.cnblogs.com/lanist/p/13230981.html
Copyright © 2011-2022 走看看