zoukankan      html  css  js  c++  java
  • KICKSTART自动部署centos7系统

    概述

    通过网络启动时会启动dhcp协议,我们需要搭建一个dhcp服务器给需要安装系统的服务器分配IP地址,分配IP的地址的目的为了让需要安装系统的主机连接tftp,连接tftp做什么呢?tftp有镜像和预启动文件,需要安装系统的服务器只有获取到了这两样东西才可以自动安装系统。

    所以我们需要安装dhcp服务器,通过dhcp服务器给服务器分配地址,然后还要告诉服务器tftp的地址,让服务器去找tftp服务,下载镜像和预启动文件。

    pxe网络启动全自动安装系统的流程介绍:

    pxe客户端 通过dhcp服务器 获取ip和tftp的地址

    pxe客户端 通过tftp服务器 下载预启动文件

    运行预启动文件,pxe客户端 去tftp服务器 获取引导文件,引导安装。这边可设置多种安装,例如centos6和centos7的安装

    pxe客户端 -> tftp服务器 获取安装需要的vmliuz和initrm.img

    内存加载vmliuz和initrd.img,然后去下载安装文件,全自动安装

    操作

    dchp

    yum install net-tools -y
    yum install dhcp -y
    vim /etc/dhcp/dhcpd.conf
    allow booting;
    allow bootp;
    class "pxeclients"{
    match if substring(option vendor-class-identifier,0,9) = "PXEClient";
    filename "pxelinux.0";
    next-server 192.168.80.20;
    } 
    
    subnet 192.168.80.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.80.10 192.168.80.15;
    option subnet-mask 255.255.255.0;
    option routers 192.168.80.2;
    option domain-name-servers 223.6.6.6;
    option time-offset -18000; 
    default-lease-time 216000;
    max-lease-time 432000;
    }
    

    配置说明

    allow 允许pxe

    next-server tftp服务器的ip信息,可以配置在非dhcp服务器

    filename tftp服务器的预启动文件

    subnet 配置dhcp服务器的网络信息,192.168.237.0/24

    range dynamic-bootp 设置分配的地址范围

    subnet-mask 配置分配地址的子网掩码

    option routers 配置分配的路由地址,可以直接上网 route -n

    option domain-name-servers dns地址设置 cat /etc/resolv.conf

    启动dhcpd服务器
    
    systemctl restart dhcpd #启动
    
    systemctl enable dhcpd #开机启动dhcpd
    

    测试dhcp是否安装成功,使用新建的虚拟机启动看一下能否获取到ip

    netstat -tulnp|grep dhcp
    

    tftp

    安装tftp服务,并且准备好服务器要预拉取的文件:pxelinux.0。

    安装tftp服务器
    yum install xinetd -y #tftp服务器使用xinetd统一纹理
    yum install tftp-server -y
    
    vim /etc/xinetd.d/tftp
    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
    }
    

    tftp配置文件解析

    disable改为no说明要启动tftp服务器

    server_args设置tftp服务器的根目录,pxelinux.0默认会到根目录下查找

    启动tftp,然后测试一下tftp能否连接上

    systemctl restart xinetd
    systemctl enable xinetd
    

    再次尝试连接,发现IP可以获取到,tftp的IP也能获取到,但是tftp里面的预启动文件无法获取!!下面我们就来准备这个预启动文件。

    准备预启动文件和引导配置文件

    //安装pxelinux.0引导文件,会安装到tftp的根目录下/var/lib/tftpboot/,这个目录与tftp的配置文件对应
    yum install syslinux-tftpboot -y
    ll -h /var/lib/tftpboot/pxelinux.0
    

    这个预加载文件已经生成好了,这个预加载文件是要被服务器下载到本地去读取的,那里面的内容是什么呢?这个预加载文件里面的内容是去引导服务器去下载“引导配置文件”,这个引导配置文件也是放在tftp上面,这个文件是要我们手工写的 /var/lib/tftpboot/pxelinux.cfg/default

    vim /var/lib/tftpboot/pxelinux.cfg/default
    default vesamenu.c32
    timeout 300
    
    menu title welcome to shijiange auto install system
    
    
    label shijiange_install_centos7
    menu label zhanghehe install centos7
    kernel centos7/vmlinuz
    append initrd=centos7/initrd.img inst.ks=http://192.168.80.20/ks7.cfg
    
     
    label shijiange_rescue
    menu label zhanghehe rescue
    menu default
    kernel centos7/vmlinuz
    append initrd=centos7/initrd.img inst.ks=http://192.168.80.20/ks7.cfg rescue
    

    配置说明

    timeout 300 超时30s

    menu title 供选择时的标题展现

    kernel 配置内核

    append 配置内存加载的文件

    pxe网络启动自动安装系统的流程介绍

    测试一下:

    引导配置文件我们也已经创建完成了,第一条就是安装,第二条是救援模式,默认如果30秒不操作就会进入到救援模式,为什么会这样,这是我们故意设置的,因为如果30秒内无人操作自动安装的话危险太大,因为安装的时候就会格式化硬盘!!!

    我们要进行下一步了,下一步就是根据上图这个引导配置文件 获取安装需要的vmliuz(linux内核)和initrm.img文件

    准备vmlinuz和initrm.img

    这两个文件在哪里有呢?在镜像文件里面就有,我们要下载一个最小化的centos镜像,上传到/usr/local/src

    目录里面,然后将镜像挂载到 /var/www/html/centos7 目录上。

    mkdir -pv /var/www/html/centos7
    mount /usr/local/src/CentOS-7-x86_64-Minimal-1908.iso /var/www/html/centos7/
    [root@dhcp centos7]# ls
    CentOS_BuildTag  EULA  images    LiveOS    repodata       RPM-GPG-KEY-CentOS-Testing-7
    EFI    GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
    
    拷贝内核文件到tftp的根目录
    mkdir -pv /var/lib/tftpboot/centos7/
    cd /var/www/html/centos7/isolinux
    cp vmlinuz initrd.img /var/lib/tftpboot/centos7/
    
    
    //测试一下能否正常加载vmliux和initrd.img
    

    这两个安装的时候要使用的文件都准备好了,下面我们来测试一下,效果如下图:

    上图是加载完linuz和initrd.img之后的报错,提示找不到http://192.168.80.20/ks7.cfg,这个文件是干啥的呢?这个文件就是安装系统的时候要选择各种项目的内容,这个文件也要我们手工进行配置的,要通过http协议,我们通过nginx进行实现。

    准备ks7配置文件

    nginx配置,root配置要参考centos7的mount位置

    location / {
    ​            root  /var/www/html/;
    ​            index index.html index.htm;
    ​            autoindex on;
    ​       }
    
    vim  /var/www/html/ks7.cfg
    firewall --disabled
    install
    rootpw zhanghe
    auth --useshadow --passalgo=sha512
    #graphical
    text
    firstboot --disable
    keyboard us
    lang en_US
    selinux --disabled
    logging --level=debug
    zerombr
    reboot
    timezone Asia/Shanghai
    network --bootproto=dhcp --device=eth0 --onboot=on --noipv6
    bootloader --location=mbr
    clearpart --all --initlabel
    part / --asprimary --fstype="ext4" --size=5000
    part /boot --fstype="ext4" --size=200
    part /data --fstype="ext4" --grow --size=1
    url --url http://192.168.80.20/centos7
    %packages
    %end
    %post
    /usr/bin/echo "run post script"
    /usr/bin/echo "zhanghe" >/tmp/zhanghe
    /usr/bin/yum install -y net-tools 
    %end
    

    配置说明,把之前手动安装改成自动安装,需要配置

    install 全新安装

    text 文本安装

    firstboot --disable 不设置代理

    keyboard 键盘总局英文

    lang en_US 语言选择英文

    zerombr 清除mbr分区

    reboot 安装完毕后重启

    clearpart 清除分区,磁盘有数据需要小心,默认选项一定不能放安装的这里

    part 设置分区 --size指定分区大小,--grow指定使用剩余所有空间

    url 指定包的位置

    %packages和%end中间放安装包,最小化安装不用配置

    %post和%end中间放安装后的自定义代码,用来做一些初始化

  • 相关阅读:
    win10 redis安装教程
    tomcat 最大并发连接数设置
    LeetCode 82 ——删除排序链表中的重复元素 II
    LeetCode 83 —— 删除排序链表中的重复元素
    LeetCode 61——旋转链表
    LeetCode 24——两两交换链表中的节点
    C++ 学习笔记之——文件操作和文件流
    LeetCode 4——两个排序数组中的中位数
    z 变换
    冲激串采样
  • 原文地址:https://www.cnblogs.com/yizhangheka/p/12229377.html
Copyright © 2011-2022 走看看