ipxe 介绍¶
ipxe 是 pxe 的扩展,提供了如下功能:
- boot from a web server via HTTP
- boot from an iSCSI SAN
- boot from a Fibre Channel SAN via FCoE
- boot from an AoE SAN
- boot from a wireless network
- boot from a wide-area network
- boot from an Infiniband network
- control the boot process with a script
ipxe 使用¶
使用 ipxe 有两种方式:
- 使用 ipxe 固件替换网卡的 PXE ROM
- 使用链式启动来加载 ipxe 固件
ipxe 可以从: http://boot.ipxe.org/ipxe.iso 下载, 但是要想使用 ipxe 的全部功能,建议通过源码自己编译。 编译方法如下:
git clone git://git.ipxe.org/ipxe.git
cd ipxe/src
make
编译¶
编译成 iso
make bin/ipxe.iso
编译成 usb
make bin/ipxe.usb dd if=bin/ipxe.usb of=/dev/sdX
编译成 pxe rom 的链式加载文件
make bin/undionly.kpxe
替代现有 PXE ROM
make bin/808610de.rom
ironic 使用 ipxe¶
创建 http 根目录
mkdir -p /tftpboot mkdir -p /httpboot chown -R ironic /tftpboot chown -R ironic /httpboot
设置 tftp map file
echo 'r ^([^/]) /tftpboot/\1' > /tftpboot/map-file echo 'r ^(/tftpboot/) /tftpboot/\2' >> /tftpboot/map-file
配置 tftp 和 http server
[pxe] tftp_root=/tftpboot tftp_server=192.168.0.2 ipxe_enabled=True [deploy] http_root=/httpboot http_url=http://192.168.0.2:8080
配置 http 服务器
这里以 apacha 为例,如果使用 nginx 请参考 nginx 的配置方法。
- 安装 httpd
$ sudo yum install httpd
- 配置 httpd
修改
/etc/httpd/conf/httpd.conf
<Directory /> Options Indexes FollowSymLinks AllowOverride none </Directory> DocumentRoot "/httpboot"
- 重启服务
$ sudo systemctl restart httpd
设置 ipxe 模板
[pxe] pxe_bootfile_name=undionly.kpxe pxe_config_template = $pybasedir/drivers/modules/ipxe_config.template
安装 iPXE 相关包
yum install ipxe-bootimgs cp /usr/share/ipxe/{undionly.kpxe,ipxe.efi} /tftpboot
重启 conductor 服务
sudo systemctl restart openstack-ironic-conductor