美文网首页
PXE+kickstart自动化部署安装Linux

PXE+kickstart自动化部署安装Linux

作者: 单曲_循环 | 来源:发表于2021-03-12 17:30 被阅读0次

    实验环境:

    Host : centos7.2(kvm) with gnome (192.168.64.3)
    Guest : centos7.2 minimal (待安装....)
    Server : centos7.9(提供 ks, 镜像, pxe启动程序等等) (192.168.64.4)
    安装方式:
    在Host主机里使用virt-manager & virt-install 两种方式安装centos7.2minimal

    PART1 kickstart文件制作
    参见教程
    ks文件制作完成后 上传到web服务器(192.168.64.4)可以访问的目录中

    PART2 使用virt-manager新建空白虚拟机
    Host主机cpu要支持虚拟化, 并且安装桌面环境和virtualization环境

    Gnome : yum group install "GNOME Desktop"
    vortualization : yum install virt-install libvirt-python virt-manager virt-install libvirt-client
    关于virtualization的详细文档

    1. 打开virt-manager


      image.png
    2. file--->new virtual machine--->PXE(NetWork Boot)----->Forward


      image.png
    3. type 根据自己的实际情况


      image.png
    1. RAM 1024 CPU 1 根据实际情况


      image.png
    2. disk 20GB 根据实际情况


      image.png
    3. network

    这里是重点

    看下我们的环境:
    Server : 提供自动化部署所需要的程序,镜像,启动文件等等,
    Host : kvm
    我们的虚拟机通过PXE安装在Host的kvm里, 所以,我们要确保Guest可以从Server的DHCP获得有效地址.
    

    所以,这一步的网络我们要选择 Host 的 eth0 模式 private


    image.png

    配置完成不着急打开我们的虚拟机,接下来配置我们的Server

    关于PXE原理之类的这里暂时不提, 后续有时间接着更新

    PART3Server端配置 :

    服务端采用 DHCP + TFTP + NGINX 的方式提供自动化部署Linux的所需要的程序,文件....
    ** 下面的配置都是在 Server (192.168.64.4)上进行的 **
    关闭SELinux & Firewall
    注意, SELinux 一定要 disable, setenforce=0也不行
    vim /etc/selinux/config
    SELINUX=enforcing -----> SELINUX=disabled
    systemctl disable firewalld
    system stop firewalld

    1. DHCP
      yum install dhcpd
      vim /etc/dhcp/dhcpd.conf
      文件配置如下:
    subnet 192.168.64.0 netmask 255.255.255.0 {
            range 192.168.64.10 192.168.64.20;
            option subnet-mask 255.255.255.0;
            default-lease-time 21600;
            max-lease-time 43200;
            next-server 192.168.64.4;
            filename "/pxelinux.0";
    }
    

    systemctl enable dhcpd
    systemctl start dhcpd
    如果有报错
    tail /var/log/message 查看日志

    1. TFTP
      yum install tftp-server
      vim /etc/xinetd.d/tftp
      配置如下: disable yes ------> disable no
      image.png

    system enable tftpd
    system start tftpd

    1. NGINX (提供web服务, httpd也可以, 不推荐python)
      yum install nginx
      yum enable nginx
      yum start nginx
      如果没有package yum install epel-release--->yum update && yum install nginx

    文件配置 : 加上 autoindex on 不然会有 403错误

    image.png

    将准备好的Linux 镜像文件放到nginx提供web服务的根目录下
    只要能通过web访问就行了
    我的位置是: /usr/share/nginx/html/centos

    upload your 镜像文件
    mount -o loop /镜像目录 /挂载点
    cp -r /挂载点/* /usr/share/nginx/html/centos

    image.png
    1. PXE 配置

    yum install syslinux
    cp -a /usr/share/nginx/html/centos/centos7.2/isolinux/* /var/lib/tftpboot/这里是将镜像文件里isolinux目录下的左右文件复制到 tftp的根目录(/var/lib/tftpboot)下
    mkdir -p /var/lib/tftpboot/pxelinux.cfg 创建 pxelinux.cfg目录

    启动文件配置: pxelinux.cfg目录下面创建default文件
    vim /var/lib/tftpboot/pxelinux.cfg/default
    文件配置如下:

    default ks
    prompt 0
    
    label ks
      kernel vmlinuz
      append initrd=initrd.img ks=http://192.168.64.4/centos/ks.cfg-minimal
    

    -------------------------------------server 配置结束---------------------------------------

    启动虚拟机 :

    看到画圈的两部分基本上就成功了!!!

    image.png

    通过virt-manager安装,发现还是比较繁琐,,下面通过virt-install安装,我们只需要一行命令就行了.

    virt-install详细文档

    [root@localhost ~]# virt-install \
    > --name centos \
    > --memory 1024 \
    > --vcpus 1 \
    > --disk size=8 \
    > --network type=dirtct,source=eth0 \
    > --pxe
    

    注意,当使用 --pxe 选项时, 同时一定要指定 --network 选项

    因为我没有使用网桥, 所以在--network 这个选项错误了很久, 最终还是通过man手册查到的

    相关文章

      网友评论

          本文标题:PXE+kickstart自动化部署安装Linux

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