本章目录(1)引言(2)简介(3)DHCP服务安装(4)TFTP服务安装(5)HTTP服务安装(6)PXE服务配置与解释
0x01序言
有时侯在公司做IT支持的时侯,须要做一些机械式重复操作的工作。诸如:有时公司同时上线几十甚至上百台服务器,并且须要我们在短时间内完成系统安装。
这时侯我们常常采用网路安装系统(ftp,http,nfs),或则采用高颜值的方式Kickstart&Cobbler实现手动化安装系统。
下边我们将自动安装的所有的详尽步骤记录到一个文件中,之后kickstart通过读取这个文件就可以实现手动化安装系统。
TIPS:kickstart是一个项目的名称,而cobbler是对kickstart的所有组件的封装(本质上就是网页版本的kickstart)
0x02阐述2.1PXE介绍
Q:哪些是PXE?A:1.PXE,全名Pre-bootExecutionEnvironment,预启动执行环境;2.通过网路插口启动计算机,不依赖本地储存设备(如硬碟)或本地已安装的操作系统;3.由Intel和Systemsoft公司于1999年9月20日公布的技术,是Client/Server的工作模式;4.PXE顾客端会调用网际合同(IP)、用户数据报合同(UDP)、动态主机设定合同(DHCP)、小型文件传输合同(TFTP)等网路合同;5.PXE顾客端(client)这个术语是指机器在PXE启动过程中的角色。一个PXE顾客端可以是一台服务器、笔记本笔记本或则其他装有PXE启动代码的机器(我们笔记本的网卡)。
2.2PXE工作过程
WeiyiGeek.PXE工作过程
(1)PXE顾客端发送UDP广播恳求PXEClient向DHCP发送恳求PXEClient从自己的PXE网卡启动,通过PXEBootROM(自启动芯片)会以UDP(简单用户数据报合同)发送一个广播恳求,向本网路中的DHCP服务器索要IP。
(2)DHCP服务器提供信息DHCP服务器收到顾客端的恳求,验证是否来至合法的PXEClient的恳求,验证通过它将给顾客端一个“提供”响应,这个“提供”响应中包含了为顾客端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。
(3)PXE顾客端恳求下载启动文件顾客端收到服务器的“回应”后,会回应一个帧linux教程,以恳求传送启动所需文件,这种启动文件包括:pxelinux.0(#引导文件,相当于grub)、pxelinux.cfg/default(#启动菜单文件)、vmlinuz(内核文件)、initrd.img(伪文件系统文件)等文件。
(4)TFTP服务器响应顾客端恳求并传送文件当服务器收到顾客端的恳求后,她们之间以后将有更多的信息在顾客端与服务器之间作应答,用以决定启动参数;BootROM由TFTP通信合同从BootServer下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default),default文件下载完成后,会依据该文件中定义的引导次序linux kickstart无人值守安装,启动Linux安装程序的引导内核。
(5)恳求下载手动应答文件顾客端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过哪些安装介质来安装linux,倘若是通过网路安装(NFS,FTP,HTTP),则会在这个时侯初始化网路,并定位安装源位置,接着会读取default文件手指定的手动应答文件ks.cfg所在位置,按照该位置恳求下载该文件。
补充问题:在第2步和第5步初始化2次网路了,这是因为PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二补码包引导以及配置文件。因而PXE模块和安装程序是相对独立的,PXE的网路配置并不能传递给安装程序,因而进行两次获取IP地址过程,但IP地址在DHCP的租约内是一样的。
(6)顾客端安装操作系统将ks.cfg文件下载回去后,通过该文件找到OSServer,并根据该文件的配置恳求下载安装过程须要的软件包,OSServer和顾客端构建联接后,将开始传输软件包,顾客端将开始安装操作系统,安装完成后将提示重新引导计算机。
WeiyiGeek.PXE工作示意图
2.3Kickstart和Cobbler介绍
Redhat系主要有两种Kickstart和Cobbler。
(1)Kickstart是一种无人值守的安装方法,它的工作原理是在安装过程中记录人工干预填写的各类参数,并生成一个名为ks.cfg的文件;假如在手动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,假如找到合适的参数,就采用所找到的参数;假如没有找到合适的参数,便会弹出对话框让安装者手工填写。所以假如ks.cfg文件囊括了安装过程中所有须要填写的参数,这么安装者完全可以只告诉安装程序从何处下载ks.cfg文件等安装完毕,安装程序会依照ks.cfg中的设置重启/关掉系统,并结束安装。
(2)Cobbler集中和简化了通过网路安装操作系统须要使用到的DHCP、TFTP和DNS服务的配置。Cobbler除了有一个命令行界面,还提供了一个Web界面,大大增加了使用者的入门水平。Cobbler外置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。
2.4环境打算
VirtualBox最小版本测试设置(自定义NAT网路,不要勾选DHCP)IP/MASK:192.168.1.0/24
WeiyiGeek.VirtualBox配置
搭建kickstart项目的机器设置:
#author:Weiyigeek
#安装环境
CentOS release 6.10 (Final) 2.6.32-754.10.1.el6.i686 #为了方便测试使用了双网卡
#禁用SElinux策略
$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
$ getenforce #非常重要关闭syslinux
Disabled
[[email protected] ~]# /etc/init.d/iptables status #非常重要关闭防火墙
iptables: Firewall is not running.
#网卡1自建NAT(必须使用网卡1,否则DHCP开启报错)
[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
HWADDR=08:00:27:AC:53:FC
TYPE=Ethernet
UUID=c3f35428-3740-4791-bc38-8e0d69707d4b
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static #设置静态IP
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
#网卡2 : 地址转换NAT 即可
#获取IP
[[email protected] ~]# ifconfig eth1|awk -F "[ :]+" 'NR==2 {print $4}'
10.0.2.15
复制
WeiyiGeek.项目一览图
注意事项:
虚拟机网卡采用NAT模式,不要使用桥接模式,由于稍后我们会搭建DHCP服务器,在同一局域网多个DHCP服务会有冲突VMware/OracleVM的NAT模式的dhcp服务也关掉linux kickstart无人值守安装,防止干扰。0x03安装DHCP
DHCP(DynamicHostConfigurationProtocol,动态主机配置合同)一般被应用在小型的局域网路环境中kali linux,主要作用是集中的管理、分配IP地址,使网路环境中的主机动态的获得IP地址、网关地址、DNS服务器地址等信息,并就能提高地址的使用率。
WeiyiGeek.dhcp工作
3.1服务安装
#author:Weiyigeek
$ yum -y install dhcp
[[email protected] ~]# rpm -ql dhcp |grep "dhcpd.conf"
/etc/dhcp/dhcpd.conf # 查看配置文件位置
[[email protected] ~]# vi /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.101 192.168.1.200;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.1.100;
filename "/pxelinux.0"; #PXE启动文件
}
# pxelinux.0是一个bootloader 类似于grub,通过它来加载系统安装引导程序,我们可以在它的配置文件中指定内核的位置和内核的启动参数
[[email protected] ~]# /etc/init.d/dhcpd start
Starting dhcpd: [ OK ]
[[email protected] ~]# netstat -tlunp | grep "dhcp"udp 0 0 0.0.0.0:67 0.0.0.0:* 19360/dhcpd
复制
WeiyiGeek.服务安装
原本软件装完后都要加入开机自启动,但这个Kickstart系统服务端就不能开机自启动,并且用完后服务都要关掉,避免未来重启服务器手动重装系统了。假如机器数目过多的话,注意dhcp服务器的地址池,不要由于用尽IP而造成dhcpd服务器没有IP地址release的情况。
3.2DHCP指定窃听网卡
说明:此知识点与本文无关,只是作者用过这个功能,记于此。多网卡默认窃听eth0,指定DHCP窃听eth1网卡
[[email protected] ~]# vim /etc/sysconfig/dhcpd
# Command line options here
DHCPDARGS=eth1 # 指定监听网卡
[[email protected] ~]# /etc/init.d/dhcpd restart
[[email protected] ~]# tailf /var/log/messages #查看DHCP链接
复制
0x04TFTP服务
TFTP简介:TFTP(TrivialFileTransferProtocol,简单文件传输合同)是TCP/IP合同族中的一个拿来在顾客机与服务器之间进行简单文件传输的合同,提供不复杂、开销不大的文件传输服务,端标语为69。
4.1TFTP安装配置
[[email protected] ~]# vim /etc/xinetd.d/tftp
[[email protected] ~]# yum -y install tftp-server
[[email protected] ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
# 指定目录,保持默认,不用修改
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
#将disable从yes改为no
[[email protected] ~]# /etc/init.d/xinetd restart
Stopping xinetd: [FAILED]
Starting xinetd: [ OK ]
[[email protected] ~]# netstat -tunlp | grep 69
udp 0 0 0.0.0.0:69 0.0.0.0:* 32098/xinetd
复制