网络启动一:之IPXE:企业应用
前几天写了IPXE简单应用内容,今天详细介绍使用IPXE在企业中的应用,部署Linux系统和Windows系统。
操作步骤:
一、搭建环境
1.1.操作系统:CentOS6.9 Min /CentOS7.4 Min 172.16.30.57
安装文件存放服务器 http://172.16.30.121 目录有centos6.9 centos7.3 ubuntu16 eg..
配置菜单服务器地址 http://172.16.30.57/ipxe 或其它服务器地址。
建议与tftp服务器在一起,这样简化安装和配置过程。
安装过程略
1.2.安装依赖包
官方指定的依赖包
yum install gcc binutils make perl liblzma mtools mkisofs xz-devel
1.3.官方网站ipxe
下载最新版本即可,目前为ipxe-79e81f8.tar.gz
文件下载位置 /usr/local/src
1.4. 解压并编译
cd /usr/local/src
tar zxvf ipxe-79e81f8.tar.gz
cd ipxe-79e81f8
编译:
make
make 不加参数代表编译所有类型。
待ftp-server 安装完毕后,复制ipxe-version/bin/undionly.kpxe /var/lib/tftpboot/undionly.kpxe
1.5 安装 tftp+dhcp+xinetd+httpd
yum install dhcp tftp-server xinetd
二、配置环境
2.1.修改tftp配置。
sed -i '/disable/s/yes/no/' /etc/xinetd.d/tftp
2.2 修改dhcpd配置
--------------------------
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
#option space ipxe;
option client-arch code 93 = unsigned integer 16;
default-lease-time 600;
max-lease-time 7200;
#ddns-update-style interim;
subnet 172.16.30.0 netmask 255.255.255.0 {
range 172.16.30.60 172.16.30.70;
option routers 172.16.30.57;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 172.16.30.57;
if option client-arch != 00:00 {
filename "ipxe/ipxe.efi";
} else {
filename "ipxe/undionly.kpxe";
}
}
server-name "TestIPXE";
}
-----------------------------------
以上为dhcp配置
2.3 修改httpd.conf
sed -i 's/#ServerName www.example.com:80/ServerName *:80/g' /etc/httpd/conf/httpd.conf
2.4 配置ipxe目录
mkdir /var/lib/tftpboot/ipxe
mkdir /var/www/html/ipxe
2.5 定制 undionly.kpxe
说明:默认undionly.kpxe 循环启动,如果要使用自己的ipxe菜单,则需要定制编译才可以。
2.5.1.编译定制文件
cd /usr/local/src/ipxe-79e81f8
touch demo.ipxe
vi demo.ipxe
-----------------------
#!ipxe
dhcp
#此处的地址为菜单的位置,可以为本机也可以为外网地址。
chain http://172.16.30.57/ipxe/ipxe.html
#make bin/undionly.kpxe EMBED=demo.ipxe
-----------------------
make bin/undionly.kpxe EMBED=demo.ipxe
2.5.2.拷贝文件到tftp目录
cp bin/undionly.kpxe /var/lib/tftpboot/ipxe/
如果要使用UEFI启动,则需要下载ipxe.efi,测试可以使用,但是慢的无法忍受,所以暂时不推荐。
2.6制作ipxe菜单
费了几番功夫研究菜单事宜,最终使用以下配置成功。
vi /var/lib/tftpboot/ipxe.html
------------
#!ipxe
#自定义变量
set dirpath http://172.16.30.121
set kspath ${dirpath}/kickstarts
#定义菜单
#clear custom_choice
#菜单名称
menu My First Menu Test
#菜单明细
item --gap Linux series
item centos7 --CentOS 7.4
item centos6 --CentOS 6.9
item --gap Windows series
item win10x64 --Windows 10 x64
item win10x32 --Windows 10 x32
item HardDisk --From hard disk
item custom_exit --Exit
#定义选择参数
choose --default custom_exit --timeout 30000 custom_choice || goto custom_exit
echo ${cls}
goto ${custom_choice}
goto custom_exit
#引导Label
:centos7
kernel ${dirpath}/centos7.4/isolinux/vmlinuz ip=dhcp ks=${kspath}/Centos-7.x-min.cfg repo=${dirpath}/centos7.4
initrd ${dirpath}/centos7.4/isolinux/initrd.img
boot || goto custom_exit
:centos6
#略...
:win10x64
kernel ${dirpath}/win10/memdisk raw iso
initrd ${dirpath}/win10/W10X32_CN_PE.iso
boot || goto custom_exit
:win10x32
#略...
:custom_exit
chain utils.ipxe
exit
------------
###注意 ###
以上配置可以自动安装,如果不熟悉或没有对应kickstarts文件,请在kernel后面把参数去掉,那样的话就是手动安装系统了,
kickstarts不在此讨论。
ln -s /var/lib/tftpboot/ipxe/ipxe.html /var/www/html/ipxe/ipxe.html
[root@localhost tftpboot]# tree
.
└── ipxe
├── ipxe.html
└── undionly.kpxe
3.防火墙放行
添加53、69、80等端口,
步骤略...
-A INPUT -s 172.16.10.0/16 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
如有其它安全设置,请依次放行.
配置基本完成,
启动服务
centos6
service xinetd start
service dhcpd start
service httpd start
centos7
systemctl start xinetd
systemctl start dhcpd
systemctl start httpd
开机启动
centos6
chkconfig --level 345 xinetd on
... ...
centos7
systemctl enable xinetd
... ...
客户端开机pxe引导
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/4072.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~