天天看点

linux8.1下使用PXE批量装机

PXE安装优点,这种安装系统的方式可以不受光驱,光盘以及一些外部设备的限制,还可以做到无人值守,大大减轻了运维人员的工作负荷,像在一些主机数量庞大的机房进行批量安装,PXE将是你不二的选择。

首先给大家一个图来了解PXE的工作方式

linux8.1下使用PXE批量装机

1. pxe自启动 请求IP,

2. dhcp 根据配置文件,回应IP 并告知tftp位置 与pxelinux.0的位置

3. 通过pxelinux.0获取另3个文件的位置  向Tftp请求下载 pxelinux/default vmlinuz imitrd.img

4. 通过default 得知ks.cfg位置,请求ks.cfg文件,

5. 通过ks.cfg得知OS存放服务器位置,

6. 下载OS安装系统软件包

所以我们要搭建三个服务

-----以下是搭建dhcp服务(还是一样的就是多两个参数)----

yum install dhcp-server -y

vi /etc/dhcp/dhcpd.conf

default-lease-time 600;

max-lease-time 7200;

log-facility local7;

subnet 192.168.80.0 netmask 255.255.255.0 {

        option routers                  192.168.80.111;

        option subnet-mask              255.255.255.0;

        option time-offset              -18000;

        range dynamic-bootp 192.168.80.60 192.168.80.100;

        next-server 192.168.80.110;//告诉客户端TFTP的位置

        filename "pxelinux.0";//告诉客户端下载的文件名

}

systemctl start dhcpd     //启动服务

----以下是搭建ftp服务器,用来提供光盘安装----

yum install -y vsftpd

mount /dev/cdrom /var/ftp/pub       //把光盘挂载到匿名用户的家目录下去

让所有人都可以来访问

vi /etc/vsftpd/vsftpd.conf  //编辑主配置文件

anonymous_enable=yes  //开启匿名用户访问

systemctl start vsftpd   //启动服务

----搭建tftp服务器,并可以使用systemctl来管理它----

yum install -y tftp-server tftp syslinux-tftpboot    //安装服务

yum -y install xinetd

vi /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  //指定tftp的工作目录

        disable     = no     //重点是吧yes改成no,让他启用

        per_source  = 11

        cps         = 100 2

        flags       = IPv4

}

systemctl start tftp

----------以下是安装启动引导菜单相关的软件包-----

yum -y install syslinux

cp -rf /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

把pxelinux.0放到tftp的家目录里去

cp /var/ftp/pub/isolinux/{boot.cat,boot.msg,grub.conf,isolinux.bin,splash.png,TRANS.TBL,vesamenu.c32,ldlinux.c32} /var/lib/tftpboot

把我们挂载光盘里的isolinux里的镜像的引导文件放到tftp的家目录里去

cp /var/ftp/pub/images/pxeboot/initrd.img  /var/lib/tftpboot/

initrd.img是一个小的映象

cp /var/ftp/pub/images/pxeboot/vmlinuz     /var/lib/tftpboot/

vmlinuz是可引导的、压缩的内核引导文件

也一并拷入到tftp的工作目录下

mkdir /var/lib/tftpboot/pxelinux.cfg

所有的配置文件都放在启动服务器的 /tftpboot/pxelinux.cfg/目录

cp /var/ftp/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

创建一个名为default的文件,就是pxelinux.0的默认配置文件,

vi /var/lib/tftpboot/pxelinux.cfg/default

default linux  //修改

prompt 1

timeout 1

display boot.msg

.........

label linux

  kernel vmlinuz

  append initrd=initrd.img text ks=ftp://192.168.80.110/ks.cfg    //后面去掉

这是linux的模板,我使用的是ftp的方式的

ks放在了ftp服务器(也就是自己)里ks.cfg

----------------以下是生成应答文件的方式(无人值守)--------------

我们装机完成后会生成一个文件

在root的家目录下 anaconda-ks.cfg

里面有你装这个服务器时候的配置

我们装系统的时候是访问ftp,所以要把这个文件拷贝到/var/ftp/里面来

cp ~/anaconda-ks.cfg /var/ftp/ks.cfg (改名为ks.cfg)

因为在default里面定义了,他就会访问ftp来找这个文件

chmod +r /var/ftp/ks.cfg  (一定要给权限!!!)

----重点改的就是以下-----

# Use CDROM installation media

install   //之前本来是cdrom,改成install

url --url="ftp://192.168.80.80/pub" //设置成通过ftp去访问光盘,和上面一行在一起

repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream

找到上面这一行一定要删除,因为之前安装是使用光盘安装,所以里面记录了,现在我们使用的是ftp去访问光盘,不删除就出现仓库源设置错误(也就是冲突了)

这样你裸机开机就可以自动装系统了

(但是这个系统和你当前是一样的,root密码和测试账号都是一样的)

1. pxe自启动 请求IP,

2. dhcp 根据配置文件,回应IP 并告知tftp位置 与pxelinux.0的位置

3. 通过pxelinux.0获取另3个文件的位置  向Tftp请求下载 pxelinux/default vmlinuz imitrd.img

4. 通过default 得知ks.cfg位置,请求ks.cfg文件,

5. 通过ks.cfg得知OS存放服务器位置,

6. 下载OS安装系统软件包

继续阅读