pxe
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统
1、安装:[root@server ~]# yum install dhcp tftp-server httpd syslinux -y
httpd ##共享安装资源
dhcp ##分配ip以及让客户主机获取pxelinux.0文件
pxelinux.0 ##预安装环境头文件,用来指定读取后续文件的程序
tftp-server ##提供tftp协议,令客户主机可以读取到预安装环境
syslinux ##提供pxelinux.0文件
2、[root@server ~]# vim /etc/xinetd.d/tftp
disable = no开启tftp服务
systemctl restart xinetd 之后重启服务
3、查看端口
查看69端口 看看tftp服务是否开启
[root@server ~]# netstat -anutple | grep 69
udp 0 0 0.0.0.0:69 0.0.0.0:* 0 29769 1825/xinetd
chkconfig --list 查看tftp是否开启
xinetd based services:
chargen-dgram: off
chargen-stream: off
daytime-dgram: off
daytime-stream: off
discard-dgram: off
discard-stream: off
echo-dgram: off
echo-stream: off
tcpmux-server: off
tftp: on ##tftp服务开启
time-dgram: off
time-stream: off
4.制作预安装环境
第一步 cp /var/www/html/rhel7.0/isolinux/* /var/lib/tftpboot/ (切换到镜像文件的挂载目录下 再切换到isolinux目录下把下面的东西全部拷贝到server中的/var/lib/tftpboot/下
第二步 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
第三步 mkdir /var/lib/tftpboot/pxelinux.cfg
第四步 cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
最后ls查看一下所有的东西
systemctl restart xinetd然后进行重启服务
5 启用DHCP服务
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 之后y进行覆盖
vim /etc/dhcp/dhcpd.conf 修改dhcp的配置文件
option domain-name "example.com"; ##客户主机域名
option domain-name-servers 172.25.254.182; ##客户主机获得到的dns
default-lease-time 600; ##默认租约期
max-lease-time 7200; ##最长租约期
log-facility local7; ##日志级别
subnet 172.25.254.0 netmask 255.255.255.0 { ##网段,子网掩码
range 172.25.254.180 172.25.254.190; ##ip地址池 获取ip的网段
option routers 172.25.254.182; ##客户主机获得到的网关
filename "pxelinux.0"; ##客户主机获得到的预安装环境头文件找的文件为pxelinux.0
next-server 172.25.254.182; ##指定头文件所在主机的ip ##表示谁提供tftp服务,就写该服务器的ip
}
systemctl start dhcpd
systemctl enable dhcpd
systemctl stop firewalldsystemctl disable firewalld
systemctl enable firewalld
之后我们在desktop中进行实验
1 首先boot启动方式中选择pxe启动
然后开机进行测试 可以看到由DHCP获取到的ip为172.25.254.180 刚好是我写入的网段 以及网关等信息
然后就进入了这个界面
但是我没有写入镜像安装源 所以还没办法安装
接下来 我们可以在配置文件中修改加入镜像的安装源 和 修改 背景 标题 等待时间等
切换在这个目录下 default就是配置文件
vim /var/lib/tftpboot/pxelinux.cfg/default
2 timeout 60(毫秒为单位的) 修改等待时间
menu background splash.png 背景图片 其所在的位置就是在/var/lib/tftpboot/ 我们可以自己在这个路径中加入图片 更改这个名称指向源既可以更改 背景 但是要注意 格式的修改
11 menu title Dou you see my small bear ? 标题 名称
61 label linux
62 menu label ^Install Red Hat Enterprise Linux 7.0
63 menu default 更改默认所在行数 这里默认我们感概成了 简短单词的 这一行
64 kernel vmlinuz
65 append initrd=initrd.img repo=http://172.25.254.250/rhel7 镜像安装源的地址
66
67 label check
68 menu label Test this ^media & install Red Hat Enterprise Linux 7.0
69
70 kernel vmlinuz
71 append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.0\x20Server.x86_64 rd.live. check quiet
我们下载的图标放在/var/lib/tftpboot中即使修改了配置文件的指向还不能直接用 格式可能有问题 这里我们可以通过软件命令来修改格式 convert 首先我们查看这个命令需要下载哪一个软件
yum whatprovides convert 可以看到需要下载的软件 然后为我们进行下载
yum install imagemagick -y
file splash.png 查看一下原来背景图片的格式 然后使用命令
convert -resize 640x480! annie.png riven.png 后面这个是改成什么名字 必须加 完了相当于多了一个图片
然后我们就可以用desktop进行测试了
果然背景图片发生了改变 标题 所在行数(原来在第二行)也都发生了改变 等待时间也改变了
然后就可以进行安装了
但是我们还是觉得太麻烦了 这时候就可以使用到kictstart 脚本写入安装的动作了 之后就可以实现全自动安装了
六 设定自动化部署
yum install system-conifig-kickstart
system-config-kickstart ---->/var/www/html/rhel7.0.cfg
system-config-kickstart 然后选择安装的动作
选择下面两个 并设置好密码
写入http安装 再写入镜像文件的位置
第三个不选 第四个全部选择第一个再进行分区
boot 分区 给200m
swap 分区给500m
剩下的全部给跟下 选择fill all~
设备写入eth0
防火墙选择disabled状态
然后将这个ks.cfg脚本保存到/var/www/html/下
然后我们可以在ks.cfg这个脚本中写入想让安装中执行的动作和安装包
38 %packages
39 @base
40 lftp
41 %end
42
43
44
45 %post
46 cat >>/etc/yum.repos.d/yum.repo <
47 [rhel7.2]
48 gpgcheck=0
49 baseurl=http://172.25.254.22/rhel7.2
50 EOF
51 rm -fr /etc/sysconfig/network-scripts/ifcfg-eth0
52 cat >>/etc/sysconfig/network-scipts/ifcfg-eth0 <
53 DEVICE=eth0
54 ONBOOT=yes
55 BOOTPROTO=none
56 IPADDR=172.25.254.99
57 NETMASK=255.255.255.0
58 EOF
59 systemctl restart network
60 %end
然后我们可以用ksvalidator ks.cfg命令来查看写入是否正确没有问题
vim /var/lib/tftpboot/pxelinux.cfg/default
label autoinstall ##选项标签
menu label ^Autoinstall RHEL7.0 ##标题
kernel vmlinuz ##启动的内核文件
这是将7.0镜像的isolinux中的vmlinuz文件复制过来
append initrd=initrd.img repo=http://172.25.254.100/rhel7.0 ks=http://172.25.254.182/ks.cfg
##初始化镜像 ##安装资源 ##自动安装脚本
然后在配置文件中 镜像源的后面加上这个ks.cfg脚本的位置 使得系统安装过程中可以去读取这个脚本用kickstart装:
还要做好dhcpd,注意版本,server用7.0的镜像装
然后我们仍然在desktop中进行测试 看到ks.cfg脚本被读取 系统开始安装 则等待安装成功即可 大功告成啦!!!~
over~