目录
pxe实现系统自动安装pxe工作原理
大致的工作过程如下:
PXE的组件:
一、配置vsftpd
二、配置tftp
三、准备pxelinx.0文件、引导文件、内核文件
四、配置dhcp
配置ip
配置dhcp
五、创建default文件
六、新建测试主机用来测试装机效果
七、配置无人值守
八、linux密码破
pxe实现系统自动安装
pxe工作原理
pxe(preboot execute environment)是由inter设计的协议,它可以使计算机通过网络启动,协议分为client/server的网络模式,pxe client在网卡的rom中(网卡需要支持pxe,目前几乎所有网卡都支持pxe),当计算机引导时,bios把pxe client调入到内存执行,pxe client 通过网络从服务器下载映像,并由此支持通过网络启动操作系统,可以实现无人值守的系统安装,只要客户机加电开机,客户机就会通过网络来引导并安装系统,这种系统安装方式适用于大批量的客户机的系统安装,避免了人为的系统引导,参数设置等所有的交互,而安装时的参数由事先编写好的文件来提供,从而提供工作效率。
大致的工作过程如下:
1、 客户机发送dhcp广播请求
2、dhcp服务器向客户机提供可用的ip地址并告知客户机tftp服务器的地址
3、tftp向客户机提供内核,驱动及引导文件
4、通过ftp/http/nfs获得安装文件,而安装时的参数由ks.cfg来提供
这样不仅系统可以通过网络引导并安装,在安装时也没有了交互的信息,从而实现了完全的加电自检安装。
PXE的组件:
vsftpd/httpd/nfs | 负责提供系统的安装文件 |
tftp | 负责提供系统安装前的引导文件与内核文件 |
dhcp | 负责提供客户端的IP地址分配与pxe引导文件,及pxe服务器地址 |
一、配置vsftpd
- 关闭防火墙与selinux
- 安装vsftpd
- 启动vsftpd
######配置本地yum
cd /etc/yum.repos.d
mkdir back
mv CentOS-* back
vim local.repo
###插入
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
###挂载sr0,安装vsftpd
mount /dev/sr0 /mnt
yum -y install vsftpd
systemctl start vsftpd
- 拷贝系统文件到/var/ftp/
cd /var/ftp
mkdir centos7
cp -r /mnt/* /var/ftp/centos7
sync
二、配置tftp
###安装
yum install -y tftp-server
###修改配置文件
vim /etc/xinit.d/tftp
###修改处
disable=no
###启动
systemctl start tftp
三、准备pxelinx.0文件、引导文件、内核文件
###准备pxelinux.0文件
yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
###准备引导文件、内核文件
cd /mnt/images/pxeboot
cp initrd.img vmlinuz /var/lib/tftpboot
四、配置dhcp
配置ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
###改为
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.253
PREFIX=24
GATEWAY=192.168.100.254
###保存退出,重启网络、ip a 查看
systemctl restart network
ip a
配置dhcp
yum -y install dhcp
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
##删除前3段的subnet字段,修改剩下的字段
subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.1 192.168.100.252;#option domain-name-servers ns1.internal.example.org;#option domain-name "internal.example.org";option routers 192.168.100.254;option broadcast-address 192.168.100.255;default-lease-time 600;max-lease-time 7200;next-server 192.168.100.253;filename "pxelinux.0";
}
###启动DHCP服务
systemctl start dhcpd
systemctl start nfs
systemctl start tftp
五、创建default文件
cd /var/lib/tftpboot
mkdir pxelinux.cfg
cd pxelinux.cfg
cp /var/lib/tftpboot/initrd.img vmlinuz /var/lib/tftpboot/pxelinux.cfg/
vim default
###插入内容
default auto #默认安装标签
prompt 1 #等待用户确认,1表示等待,0表示不等待
label auto #定义标签kernel vmlinuz #指定内核append initrd=initrd.img method=ftp://192.168.100.253/centos7 #指定引导镜像文件与系统安装文件
六、新建测试主机用来测试装机效果
新建虚拟机
开机,连接成功,按下回车开始安装
加载完后自动调度显示以下测试完毕
七、配置无人值守
配置ks文件
##使用图形界面配置
yum install -y system-config-kickstart.noarchsystem-config-kickstart
基本配置
安装方法
引导装在程序选项
分区信息
脚本看自己是否需要配置
例:local脚本
保存
查看是否保存
拷贝:从/root/anaconda-ks.cfg文件中拷贝软件安装字段到ks.cfg
vim anaconda-ks.cfg
##复制以下字段插入到ks.cfg
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
chrony
kexec-tools%end
拷贝ks.cfg到ftp
cp ks.cfg /var/ftp
修改default文件
vim /var/lib/tftpboot/pxelinux.cfg/default
###修改
default auto
prompt 0
label autokernel vmlinuzappend initrd=initrd.img method=ftp://192.168.100.254/centos7 ks=ftp://192.168.100.254/ks.cfg
验证
自动自动自动
加载完后会自动配置并安装
安装好后会自动重启
ip是dhcp的地址池分配
八、linux密码破解
自动安装或许有忘记密码的可能所以写一份root密码恢复步骤
press ‘e’
此界面按e可进入编辑选项
找到linux行在最后加入rd.baeak 输入后执行ctrl+x开始编辑
输入ctrl+x后会进入编辑界面 switch_root:/# ;
switch_root:/# mount -o remount,rw /sysroot/ /以读写方式重新挂载/sysroot目录;
switch_root:/# chroot /sysroot /修改/sysroot;
sh-4.2# passwd /输入要修改的密码两遍
■ ■ ■ ■ root ■ ■ ■ ■
■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■
passwd ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
sh-4.2# touch /.autorelavel /创建/.autorelabel,如果开启SeLinux必须配置;
sh-4.2# exit /退出
switch_root:/# exit /重启