PXE无人值守安装系统

学习背景:我们之前在安装一个操作系统的时候,需要去VMware里面从头到尾的去配置,需要镜像文件、怎么去设置密码、磁盘存储怎么存,一步一步的去把虚拟机创建出来,如果在公司大批量安装操作系统就可以用PXE+kickstart去大批量安装。

PXE无人值守安装系统

使用PXE+KickStart可以通过非交互模式完成无人值守安装操作系统。

PXE 客户端从DHCP服务器获取到PXE服务端的具体IP,然后再从PXE配置文件中获取vmlinuz、initrd.img、ks.cfg、系统镜像等文件所在的服务器和位置信息。

什么是PXE?

  • PXE,全名为Pre-boot Execution Environment,预启动执行环境
  • 通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已经安装的操作系统
  • 由Intel和Systemsoft公司于1999年9月发布的技术
  • Client/Server的工作模式

在这里插入图片描述回顾nmcli命令用法:

nmcli connection show 查看网络情况
nmcli connection modify '旧网络名' con-name 新网络名

重启网卡:
nmcli connection down ens37
nmcli connection up ens37

批量装机软件

  • Cobbler
  • Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数;**如果没有找到合适的参数,便会弹出对话框让安装者手工填写。**所以,如果ks.cfg文件涵盖了安装过程中所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处下载ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启/关闭系统,并结束安装。

实验部署

  • 关闭防火墙和selinux
[root@server1 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled;
vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@server1 ~]# getenforce
Permissive
  • 配置DHCP Server:DHCP是一个局域网的网络协议,使用UDP协议工作,主要有两个用途,给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机中央管理的手段。
  • 准备网卡,添加一张仅主机网卡
[root@server1 ~]# nmcli connection modify '有线连接 1' con-name ens37
[root@server1 ~]# nmcli connection modify ens37 ipv4.addresses
192.168.92.200/24 autoconnect yes ipv4.method manual
[root@server1 ~]# nmcli connection down ens37
[root@server1 ~]# nmcli connection up ens37
[root@server1 ~]# ip a | grep global
inet 192.168.92.200/24 brd 192.168.92.255 scope global ens37
  • 配置dhcp服务
    • 关闭仅主机网卡的自动DHCP
  • 准备DHCP服务器
[root@server1 ~]# yum -y install dhcp -y
[root@server1 ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.92.0 netmask 255.255.255.0 {
range 192.168.92.100 192.168.92.199;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.92.200;
filename "/pxelinux.0";
}
[root@server1 ~]# systemctl restart dhcpd
[root@server1 ~]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multiuser.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
注:
range 192.168.92.100 192.168.92.199; # 可分配的起始IP-结束IP
option subnet-mask 255.255.255.0; # 设定netmask
default-lease-time 21600; # 设置默认的IP租用期限
max-lease-time 43200; # 设置最大的IP租用期限
next-server 192.168.92.200; # 告知客户端TFTP服务器的ip
filename "/pxelinux.0"; # 告知客户端从TFTP根目录下载pxelinux.0文件
# 验证端口号
[root@server1 ~]# ss -uanp | grep 67
UNCONN 0 0 *:67 *:*
users:(("dhcpd",pid=4333,fd=7))
  • 安装tftp
[root@server1 ~]# yum install tftp-server -y
[root@server1 ~]# systemctl start tftp
[root@server1 ~]# systemctl enable tftp
[root@server1 ~]# ss -uanp | grep 69
UNCONN 0 0 :::69 :::*
users:(("systemd",pid=1,fd=25))
  • pxe引导配置,syslinux是一个功能强大的引导加载程序,而且兼容各种介质。syslinux是一个小型的Linux操作系统,**它的目的是简化首次安装或其他特殊用途的启动盘。**首先需要将pxelinux.0配置文件复制到tftp目录下,再将光盘镜像中的一些文件复制到tftp的目录中。
[root@server1 ~]# yum install syslinux -y
[root@server1 ~]# cd /var/lib/tftpboot/
[root@server1 tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@server1 tftpboot]# mkdir -p /media/cdrom
[root@server1 tftpboot]# mount /dev/cdrom /media/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server1 tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img}
/var/lib/tftpboot/
[root@server1 tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg}
/var/lib/tftpboot/
  • 配置syslinux服务程序,这个文件是开机时的选项菜单
[root@server1 tftpboot]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[root@server1 tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg
pxelinux.cfg/default
[root@server1 tftpboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
1 default linux
64 append initrd=initrd.img inst.stage2=ftp://192.168.92.200
ks=ftp://192.168.92.200/pub/ks.cfg quiet
  • 配置vsftpd服务程序,光盘镜像时通过ftp协议传输的,因此要用到vsftpd服务程序
[root@server1 tftpboot]# yum install -y vsftpd
[root@server1 tftpboot]# systemctl restart vsftpd
[root@server1 tftpboot]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multiuser.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@server1 tftpboot]# cp -r /media/cdrom/* /var/ftp/
  • 创建Kickstart应答文件,Kickstart应答文件中包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的内容,从而彻底实现无人值守安装系统。

anaconda-ks.cfg(该文件里包含了系统里面的相关配置

[root@server1 tftpboot]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
[root@server1 tftpboot]# chmod +r /var/ftp/pub/ks.cfg
[root@server1 tftpboot]# vim /var/ftp/pub/ks.cfg
5 url --url=ftp://192.168.92.200 # 删除原本的cdrom
30 clearpart --all --initlabel # 意思是清空所有磁盘内容并初始化磁盘
  • 自动部署客户端主机
    tips:
    在新主机添加网络类型时,使用仅主机模式(做实验测试使用)
    分配内存的时候需要分配2G

安装成功在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值