PXE+kickstart自动化部署安装Linux

2021-03-12  本文已影响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手册查到的

上一篇下一篇

猜你喜欢

热点阅读