目录
2安装tftp-server和xinetd软件包(tftp服务依赖于xinetd超级服务)
5配置DHCP服务器:(pxe远程部署系统是没有IP地址的,所以需要DHCP分配)
kickstart-由于下载软件包信息失败,软件包选择被禁止解决方法:
PXE简介
1.1PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的,工作于C/S网络模式,支持通过网络从远端服务器下载映像,并支持通过网络启动操作系统。
1.2在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置。从而引导预先安装在服务器中的终端操作系统。
1.3PXE可以引导多种操作系统,如: windows2008/ win7/win8/linux系列系统等。PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供。
2.xinetd
支持对tcp、udp、RPC服务(但是当前对RPC的支持不够稳定)
基于时间段的访问控制
功能完备的log功能,即可以记录连接成功也可以记录连接失败的行为
能有效的防止DoS攻击(Denial of Services)
能限制同时运行的同一类型的服务器数目
能限制启动的所有服务器数目
能限制log文件大小
将某个服务绑定在特定的系统接口上,从而能实现只允许私有网络访问某项服务
能实现作为其他系统的代理。如果和ip伪装结合可以实现对内部私有网络的访问
3.1kickstart['kɪkstɑːt] 定义了Linux安装过程的配置文件,比如要在系统中使用的时区、如何对驱动器进行分区、或者应该安装哪些软件包。
3.2有了这个文件可以解放双手,让Linux安装过程按照我们预先定义的要求进行自动化安装,同时部署大量主机时十分有用。
3.3一般centos系统安装后,会在root目录下生成一个名为anaconda-ks.cfg的kickstart配置文件。
实现PXE需要的硬件和软件
硬件需求:
1.客户端需要一块支持PXE引导模块的网卡
2.客户端的主板BIOS需要支持网卡启动
软件需求:
1.PXE引导服务
2.DHCP地址分配服务
3.安装TFTP简单文件服务
4.安装FTP服务器
服务作用说明
1.PXE引导服务:可以给客户机提供系统启动指令,引导模块和内核模块
2.DHCP服务:客户端没有操作系统,所以无法手动配置IP地址,唯一的方式就是通过DHCP获取IP地址
3.TFTP服务:服务器给客户端传输引导模块和内核文件
4.FTP服务:服务器给客户端传输操作系统的安装文件
部署PXE远程装机
1安装ftp服务,准备yum源
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# systemctl restart network
[root@localhost ~]# mount /dev/cdrom /media/
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# vim /etc/yum.repos.d/yum.repo
添加:
[yum]
name=yum
baseurl=file:///media //挂载镜像目录
gpgcheck=0 //是否检查GPG密钥
enabled=1 //是否开启yum源
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cp -rf /media/* /var/ftp/centos7/
//复制media目录下的所有东西到centos7目录下
包含Packages和repodata目录,东西多,耐心等
2安装tftp-server和xinetd软件包(tftp服务依赖于xinetd超级服务)
[root@localhost ~]# yum -y install tftp-server tftp xinetd
3修改tftp配置文件
[root@localhost ~]# vim /etc/xinetd.d/tftp
//把disable=yes改为disable=no
4启动tftp服务
systemctl restart xinetd
systemctl restart tftp
5配置DHCP服务器:(pxe远程部署系统是没有IP地址的,所以需要DHCP分配)
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
//将DHCP辅助手册复制到主配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
在最后添加:
subnet 192.168.1.0 netmask 255.255.255.0 { //分配网段及掩码
range 192.168.1.100 192.168.1.188; //分配地址池
next-server 192.168.1.1; //指定TFTP的服务器地址
filename "pxelinux.0"; //指定PXE引导启动程序的文件名
}
[root@localhost ~]# systemctl restart dhcpd
6准备内核文件和初始化镜像文件
[root@localhost ~]# cd /media/images/pxeboot/
//存放内核文件和初始化镜像文件的目录
[root@localhost pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
//vmlinuz:linux系统内核文件 initrd.img:简化系统镜像
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot
//将文件复制到tftp启动目录下
7准备支持PXE软件包
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cd /usr/share/syslinux/
[root@localhost syslinux]# cp pxelinux.0 /var/lib/tftpboot
//将PXE网络安装引导程序复制到tftp启动目录
PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供
8准备启动菜单
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
//创建启动菜单目录
[root@localhost ~]# cp /media/isolinux/boot.msg /var/lib/tftpboot
//将启动镜像放到tftp启动目录
9修改启动菜单
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
添加:
default auto //自动选择
prompt 1 //是否等待用户控制 0为不等
timeout 600 //等待时间
display boot.msg
label auto //常规安装
kernel vmlinuz //内核为vmlinuz
append initrd=initrd.img method=ftp://192.168.1.1/centos7
//append initrd=加载镜像 initrd.img类似Windows pe系统 method=FTP镜像路径
@ 有三种安装方式 这篇文章选择的是常规安装 三种安装方式 格式如下
label auto //常规安装
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.1.1/centos
label linux text //文本模式安装
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.1.1/centos
label linux rescue //系统修复
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.1.1/centos
10 重启所有服务
[root@localhost ~]# systemctl restart tftp
[root@localhost ~]# systemctl restart dhcpd
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
11 客户端测试
新建虚拟机验证 ,调节同一虚拟网卡实现dhcp广播 客户机安装时候先调节网络获取
F10保存退出
boot:auto //输入auto或者直接回车进入常规安装
boot:linux text //进入文本安装模式
boot:linux rescue //进入救援模式
完成
无人值守安装
需求:通过kick start无人值守自动安装(需要建立在pxe远程安装上)
通过 PXE 技术远程安装期间仍需要手动选 择语言、键盘类型、指定安装源等一系列交互操作,很麻烦,所以使用kick start无人值守自动安装
1、准备安装应答文件
[root@localhost ~]# yum -y install system-config-kickstart
[root@localhost ~]# system-config-kickstart //输入此命令直接打开kickstart配置程序
[root@localhost ~]# system-config-kickstart
//输入此命令直接打开kickstart配置程序
kickstart-由于下载软件包信息失败,软件包选择被禁止解决方法:
修改yum源配置文件,将yum源配置文件中的id部分修改位development后,卸载system-config-kickstart并重新安装该命令,即可出现软件包信息,
[root@node1 kk]# vim /etc/yum.repos.d/yum.repo
[yum] --此处修改为[development]
name=my-centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0
#只需将文件内[centos]修改位[development]即可,如下
[root@node1 kk]# cat /etc/yum.repos.d/yum.repo
[development]
name=my-centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0
修改文件后,卸载命令system-config-kickstart并重新安装:
# 卸载命令
[root@node1 kk]# yum remove -y system-config-kickstart
#重建yum缓存
[root@node1 kk]# yum clean all
[root@node1 kk]# yum makecache
#重新安装命令
[root@node1 kk]# yum install -y system-config-kickstart
使用system-config-kickstart重新创建ks.cfg文件
第二种方法
首先配置好pxe后,用yum进行安装kickstart
[root@localhost ~]# yum -y install system-config-kickstart
配置安装应答参数
[root@localhost ~]# system-config-kickstart
//输入此命令直接打开kickstart配置程序
也可以使用图形化打开
点击左上角的应用程序,选择系统工具,只要安装上了kickstart就可以看到
打开之后基本配置这里
修改默认语言为中文简体,键盘默认使用U.S.English,时区更改为Asia/shanghai
(需要耐心往下翻找到shanghai)然后加个r oot密码并勾选上安装后重启
然后打开安装方法
点击执行全新安装,选择ftp,写入我们的ftp服务器IP地址以及ftp目录
(部署PXE的时候就已经配置完成)
点击分区信息,全部保持默认直接点击最下边的添加
打开之后是这样的,需要自己手动指定挂载点、文件系统类型以及容量
分别添加/boot挂载点
Swap文件系统类型,容量2048MB
最后挂载点选择/,容量勾选使用磁盘上全部未用空间
然后点开网络配置添加网卡,点击添加网络设备,名字为ens33,默认DHCP网络类型
然后点击防火墙配置,将SELinux禁用掉
最后点击左上角文件,有个保存
保存文件名称默认就行,记着就行,然后点击文件系统,找到/var再找到/ftp
保存到/var/ftp下,然后点击保存关闭kickstart配置程序即可
基本配置信息完成之后开始添加软件包(添加到我们刚才保存的文件/var/ftp/ks.cfg)
在添加之前我们需要了解一个配置文件,是安装操作系统时自带的
[root@localhost ~]# vim /root/anaconda-ks.cfg
这个文件总共分为三部分:
第一部分为基本配置信息
第二部分为磁盘分区信息
第三部分为软件包列表
而我们需要的就是第三部分(从%packages开始到%end结束)
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@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
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
将软件包复制下来之后放入我们的配置文件
[root@localhost ~]# vim /var/ftp/ks.cfg
//将复制的软件包列表添加至文件最后然后保存退出
然后修改我们的启动菜单(ftp源的启动菜单)
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
修改:
Prompt 1改为prompt 0 //等待用户操作,1为开启0为关闭
将append initrd=initrd.img method=ftp://192.168.1.1/centos7
修改为append initrd=initrd.img ks=ftp://192.168.1.1/ks.cfg
最后重启ftp和tftp服务
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# systemctl restart tftp
客户机验证:(注意:还是2G内存以上,bios启动项把网络启动设置为第一位)
1)准备新的虚拟机
2)桥接网卡
3)启动虚拟机
4)自动完成安装
耐心等待即可