服务端和客户端
pxe:c/s模式,允许客户端通过远程服务器(服务端)下载引导镜像,加载安装吻技安,实现自动化安装操作系统。
无人值守:安装选项不需要认为干预,可以自动化实现。
pxe优点:
1.规模化 同时装配多台服务器20多台不超过30台。
2.自动化
3.远程实现:不需要光盘u盘。
c/s客户端和服务端可以是多台。
pxe的安装条件:
硬件:网卡要支持pxe协议。主板支持网络引导。
软件:服务端要有dhcp服务,可以在客户机启动时自动分配ip地址。
TFTP 简单文件传输协议,传小文件,引导镜像文件很小,使用tftp
BSFTP 文件传输协议,传送大文件,安装文件。
test2作为服务端
[root@test2 ~]# yum -y install tftp-server xinetd
FTP xinetd 网络守护进程服务程序,用来管理轻量级的网络服务。管理TFTP的文件传输,是一个后台进程,使用的是udp协议端口是69
[root@test2 ~]# yum -y install dhcp
DCHP
[root@test2 ~]# yum -y install dhcp
VSFTP
准备pxe的引导文件,通过光盘镜像把文件复制出来复制到/var/lib/tftpboot/
vmlinuz linux的系统的内核文件
initrd.img 初始化镜像文件,引导加载的模块文件
pxelinux.0 引导程序文件
安装pxe的引导程序
配置启动菜单文件:
无人值守
安装无人值守
实验
1.关闭防火墙安装tftp 文件传输
[root@test2 ~]# systemctl stop firewalld [root@test2 ~]# setenforce 0 [root@test2 ~]# yum -y install tftp-server xinetd 安装文件输出
2.重启安装的配置文件,设置为开机自启
[root@test2 ~]# systemctl restart tftp 重启配置文件 [root@test2 ~]# systemctl enable tftp 开机自启 Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket. [root@test2 ~]# systemctl restart xinetd.service 重启配置文件 [root@test2 ~]# systemctl ana xinetd.service Unknown operation 'ana'. [root@test2 ~]# systemctl enable xinetd.service 开机自启
3.修改tftp配置文件
[root@test2 ~]# vim /etc/xinetd.d/tftp
# and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = no 把yes改为no 单个发送成为并发 user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no 把yes改为no per_source = 11 cps = 100 2 flags = IPv4 } :wq!
[root@test2 ~]# systemctl restart tftp 修改配置文件后要重启
[root@test2 ~]# systemctl restart xinetd 修改配置文件后要重启
4.安装dhcp分配IP地址
[root@test2 ~]# yum -y install dhcp
5.复制dhcp到/etc/dhcpd.conf 覆盖掉原来的文件
[root@test2 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
6.修改dhcp的配置文件
[root@test2 ~]# vim /etc/dhcp/dhcpd.conf Use this to enble / disable dynamic dns updates globally. ddns-update-style none; 注释掉 next-server 192.168.65.21; #指定tftp的服务器 filename "pxelinux.0"; #指定下载pxe的引导文件 This is a very basic subnet declaration. subnet 192.168.65.0 netmask 255.255.255.0 { 该网关 子网掩码 range 192.168.65.100 192.168.65.110; 改网段范围 option routers 192.168.65.21; 改为ip地址 } wq! [root@test2 ~]# systemctl restart dhcpd 重启
7.挂载光盘镜像
[root@test2 ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 /dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
8.进入挂载点查看内核文件
[root@test2 ~]# cd /mnt/ [root@test2 mnt]# ls CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7 EFI images Packages RPM-GPG-KEY-CentOS-Testing-7 EULA isolinux repodata TRANS.TBL [root@test2 mnt]# cd images/ [root@test2 images]# ls efiboot.img pxeboot TRANS.TBL [root@test2 images]# cd pxeboot/ [root@test2 pxeboot]# ls initrd.img TRANS.TBL vmlinuz linux的系统内核文件 vmlinuz
9.复制内核文件vmlnuz到配置文件中的根目录下
[root@test2 pxeboot]# ll 总用量 57838 -rw-r--r--. 1 root root 52584760 11月 26 2018 initrd.img -r--r--r--. 1 root root 441 11月 26 2018 TRANS.TBL -rwxr-xr-x. 1 root root 6639904 11月 9 2018 vmlinuz [root@test2 pxeboot]# cp vmlinuz /var/lib/tftpboot/
10.复制initrd.img 初始化镜像文件,引导加载的模块文件到根目录/var/lib/tftpboot/
[root@test2 pxeboot]# ls initrd.img TRANS.TBL vmlinuz [root@test2 pxeboot]# cp initrd.img /var/lib/tftpboot/
检查文件是否复制到根目录下
[root@test2 pxeboot]# cd /var/lib/tftpboot/ [root@test2 tftpboot]# ls initrd.img vmlinuz
11.安装pxe的引导程序 是syslinux
[root@test2 tftpboot]# yum -y install syslinux [root@test2 tftpboot]# cd /usr/share/syslinux/ pxeLinux.0程序引导文件 [root@test2 syslinux]# ls cpuidtest.c32 hdt.c32 kbdmap.c32 poweroff.com vesamenu.c32 diag host.c32 linux.c32 pwd.c32 vpdtest.c32 disk.c32 ifcpu64.c32 ls.c32 pxechain.com whichsys.c32 dmitest.c32 ifcpu.c32 lua.c32 找到 pxelinux.0 zzjson.c32 dosutil ifplop.c32 mboot.c32 reboot.c32 elf.c32 int18.com mbr.bin rosh.c32
12.复制程序引导文件pxelinux.0到根目录
[root@test2 syslinux]# cp pxelinux.0 /var/lib/tftpboot/ [root@test2 syslinux]# cd /var/lib/tftpboot/ [root@test2 tftpboot]# ls 查看是否复制完成 initrd.img pxelinux.0 vmlinuz 初始化镜像 程序引导文件 内核文件 [root@test2 tftpboot]# 三个一个都不能少都要复制到/var/lib/fttpboot/注意权限是否足够
13.安装vsftp 整个镜像文件复制到vsftp默认的根目录下
[root@test2 tftpboot]# yum -y install vsftpd [root@test2 tftpboot]# cd /var/ftp/ [root@test2 ftp]# ls pub [root@test2 ftp]# mkdir centos7 [root@test2 ftp]# cp -fr /mnt/* /var/ftp/centos7/ 因为文件大所以用ftp传不用vsftp [root@test2 ftp]# cd /var/ftp/centos7/ [root@test2 centos7]# ls CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7 EFI images Packages RPM-GPG-KEY-CentOS-Testing-7 EULA isolinux repodata TRANS.TBL [root@test2 centos7]# systemctl restart vsftpd 重启一下vsftp
14.配置启动菜单文件
[root@test2 centos7]# mkdir /var/lib/tftpboot/pxelinux.cfg 在根目录里创建一个目录 [root@test2 centos7]# cd /var/lib/tftpboot/ [root@test2 tftpboot]# ls 查看创建的目录 initrd.img pxelinux.0 pxelinux.cfg vmlinuz
15.在新建的配置文件中配置(default)
[root@test2 tftpboot]# cd pxelinux.cfg/ [root@test2 pxelinux.cfg]# ls [root@test2 pxelinux.cfg]# vim default default auto #指定安装程序的入口,使用这个文件作为安装程序的入口。自动选择。 prompt 0 #是否等待用户选择,0不等待用户输入自动完成。1需要用户手动完成 label auto #图形界面的默认安装入口 kernel vmlinuz #表示加载内核文件,是vmlinuz append initrd=initrd.img method=ftp://192.168.65.21/centos7 label linux text #字符界面,最小化安装 kernel vmlinuz #加载内核 append initrd=initrd.img method=ftp://192.168.65.21/centos7 label linux rescue #救援模式的引导入口 kernel vmlinuz append initrd=initrd.img method=ftp://192.168.65.21/centos7 :wq!
在新建的虚拟机上操作
1.运行新建虚拟机
无人值守操作
1.xshell安装无人值守
[root@test2 pxelinux.cfg]# yum -y install system-config-kickstart
无人值守配置
1.回到根目录进入保存文件修改配置文件
[root@test2 pxelinux.cfg]# cd [root@test2 ~]# ls anaconda-ks.cfg ks.cfg 模板 图片 下载 桌面 initial-setup-ks.cfg 公共 视频 文档 音乐 [root@test2 ~]# vim ks.cfg 把这些安装包添加进来,格式以%开头以%结尾 %packages @base @core @desktop-debugging @dial-up @directory-client @fonts @gnome-desktop @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @print-client @x11 binutils chrony ftp gcc kernel-devel kexec-tools make open-vm-tools patch python %end
2.把ks.cfg添加到default
[root@test2 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default label auto #图形界面的默认安装入口 kernel vmlinuz #表示加载内核文件,是vmlinuz append initrd=initrd.img method=ftp://192.168.65.21/centos7 ks=ftp://192.168.65.21/ks.cfg
3.把ks.cfg复制到ftp的根目录
[root@test2 ~]# vim ks.cfg [root@test2 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default [root@test2 ~]# cp ks.cfg /var/ftp/ [root@test2 ~]# cd /var/ftp/ [root@test2 ftp]# ls centos7 ks.cfg pub [root@test2 ftp]#
4.到新建的虚拟机,虚拟机是卡住的状态,这是直接重启虚拟机。