荐 Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)
程序员文章站
2022-06-25 09:20:39
文章目录部署PXE远程安装服务搭建PXE远程安装服务器服务器的批量部署的优点PXE网络配置PXE装机服务器上面都是废话 实验直接搞起实现Kickstart无人值守安装关于Fkickstart准备安装应答文件实现批量自动装机部署PXE远程安装服务PXE由DHCP TFTP VSFTPD 三个服务构建而来搭建PXE远程安装服务器服务器的批量部署的优点规模化:同时装配多台服务器自动化:安装系统,配置各种服务远程实现:不需要光盘,U盘等安装介质PXE网络装机速度取决于网络的速度 带宽PX...
文章目录
部署PXE远程安装服务
PXE由DHCP TFTP VSFTPD 三个服务构建而来
搭建PXE远程安装服务器
服务器的批量部署的优点
规模化:同时装配多台服务器
自动化:安装系统,配置各种服务
远程实现:不需要光盘,U盘等安装介质
PXE网络
装机速度取决于网络的速度 带宽
-
PXE,Pre-boot eXcution Environment
预启动执行环境,在操作系统之前运行
-
服务端
-
运行DHCP服务,用来分配地址,定位引导程序
DHCP 让客户端获取IP地址,能主动联网PXE服务器 配置中指向TFTP
-
运行TFTP服务器,提供引导程序下载
TFTP 放的都是文件系统,UDP 69端口,快速加载引导程序,引导程序的容量较小,默认配置文件指向FTP镜像位置
FTP 文件系统 TCP 21连接服务 20传输数据 系统镜像存放位置
-
-
客户端
网卡支持PXE协议
主板支持网络启动
配置PXE装机服务器
- 基本部署过程
- 准备centos 7 安装源(yum仓库)
- 安装并启用TFTP服务
- 提供Linux内核、PXE弓|导程序等
- 安装并启用DHCP服务
- 配置启动菜单
——————————————————————
- 准备centos 7 安装源
- CentOS 7安装源支持HTTP、FTP、 NFS等协议发布
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# mkdir wvarl/ftp/centos7
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/centos7/
[root@localhost ~]# systemctl start vsftpd
- 安装并启用TFTP服务
- 安装ftp-server软件包,启用tftp服务。
- 配置文件位于/etc/xinetd.d/tftp
[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vi /etc/xinetd.d/tftp
server_ args = -S /var/lib/tftpboot
disable = no 修改配置值
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp
- 准备Linux内核、PXE引导程序
- Linux内核、 初始化镜像文件分别为vmlinuz和initrd.img
- 引导程序为pxelinux.0,由软件包syslinux提供
[root@localhost ~]# cd /media/cdrom/images/pxeboot
[root@localhost pxeboot]# cp vmlinuz initrd.img /arl/ib/tftpboot
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 larlibtftpboot
- DHCP服务的PXE设置
[root@localhost ~]#yum install dhcp -y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.20 192.168.100.30;
option routers 192.168.100.100;
option domain-name-servers 6.6.6.6;
next-server 192.168.100.100; #指定TFTP服务器地址
filename "pxelinux.0"; filename: #指定要下载的引导程序文件
}
[root@localhost ~]#systemctl start dhcpd
[root@localhost ~]#systemctl enable dhcpd
上面都是废话 实验直接搞起
使用VMware软件中创建centos 7系统的裸机
服务端设置双网卡
一个仅主机模式用来给客户端装机
一个原本不变用来安装yum包
设置添加的网卡IP地址,关闭防火墙
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.110.100
NETMASK=255.255.255.0
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# iptables -F
[root@localhost network-scripts]# setenforce 0
设置DHCP服务
[root@localhost network-scripts]# yum install dhcp* -y
[root@localhost network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost network-scripts]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.20 192.168.100.30;
option routers 192.168.100.100;
option domain-name-servers 8.8.8.8;
next-server 192.168.100.100; #指定TFTP服务器地址
filename "pxelinux.0"; #filename:指定要下载的引导程序文件
}
设置TFTP--配置安装tftp-server
[root@localhost network-scripts]# yum install tftp-server -y
[root@localhost network-scripts]# rpm -ql tftp-server
/etc/xinetd.d/tftp #配置文件
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot #站点
[root@localhost network-scripts]# vim /etc/xinetd.d/tftp #编辑配置文件
disable = no #改成no wq保存退出
[root@localhost network-scripts]# cd /var/lib/tftpboot/ #进入站点
[root@localhost tftpboot]# ls
空的
安装并设置syslinux
[root@localhost tftpboot]# yum install syslinux -y #安装syslinux
[root@localhost tftpboot]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot ##将syslinux中的pxelinux.0复制过来
[root@localhost tftpboot]# yum install vsftpd -y #安装vsftpd
[root@localhost tftpboot]# rpm -ql vsftpd #查看站点
...省略内容
/var/ftp #站点
/var/ftp/pub
[root@localhost tftpboot]# mkdir /var/ftp/centos7 #创建centos7目录用来挂载
[root@localhost tftpboot]# cd /var/ftp/
[root@localhost ftp]# ls
centos7 pub
[root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7/ #挂载
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]# ls centos7/ #查看centos7文件
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
在镜像中复制出文件
[root@localhost ftp]# cd centos7/images/
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/ #将文件复制到tftp站点中
设置默认配置文件
[root@localhost pxeboot]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 vmlinuz
[root@localhost tftpboot]# mkdir pexlinux.cfg #创建pxelinux配置文件目录
[root@localhost tftpboot]# cd pexlinux.cfg/
[root@localhost pexlinux.cfg]# vim default #创建并编辑默认配置文件
输入数据
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
实现Kickstart无人值守安装
关于Fkickstart
- kickstart无人值守技术
- 创建应答文件,预先定义好各种安装设置
- 免去交互设置过程,从而实现全自动化安装
准备安装应答文件
- 应答文件的来源
- 编辑CentOS 7系统中现有的应答文件
/root/anaconda-ks.cfg - 使用system-config-kickstart工具创建新的应答文件
需要安装system-config-kickstart软件包
- 编辑CentOS 7系统中现有的应答文件
实现批量自动装机
[root@localhost ~]# yum install system-config-kickstart -y #安装kickstart工具
复制33——56行的内容
[root@localhost ~]# vim anaconda-ks.cfg
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools
%end
[root@localhost ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面
[root@localhost ~]# vim ks.cfg #粘贴到刚刚保存的文件
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
[root@localhost ~]# mv ks.cfg /var/ftp/
[root@localhost ~]# ls /var/ftp/
centos7 ks.cfg pub
[root@localhost ~]# systemctl restart dhcpd #重启服务
[root@localhost ~]# systemctl restart tftp
[root@localhost ~]# systemctl restart vsftpd
本文地址:https://blog.csdn.net/CN_PanHao/article/details/107320852