========= 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 的全部功能,建议通过源码自己编译。 编译方法如下: .. code-block:: bash git clone git://git.ipxe.org/ipxe.git cd ipxe/src make 编译 ----- #. 编译成 iso .. code-block:: bash make bin/ipxe.iso #. 编译成 usb .. code-block:: bash make bin/ipxe.usb dd if=bin/ipxe.usb of=/dev/sdX #. 编译成 pxe rom 的链式加载文件 .. code-block:: bash make bin/undionly.kpxe #. 替代现有 PXE ROM .. code-block:: bash make bin/808610de.rom ironic 使用 ipxe ---------------- #. 创建 http 根目录 .. code-block:: bash mkdir -p /tftpboot mkdir -p /httpboot chown -R ironic /tftpboot chown -R ironic /httpboot #. 设置 tftp map file .. code-block:: bash echo 'r ^([^/]) /tftpboot/\1' > /tftpboot/map-file echo 'r ^(/tftpboot/) /tftpboot/\2' >> /tftpboot/map-file #. 配置 tftp 和 http server .. code-block:: bash [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 .. code-block:: bash $ sudo yum install httpd * 配置 httpd 修改 ``/etc/httpd/conf/httpd.conf`` .. code-block:: bash Options Indexes FollowSymLinks AllowOverride none DocumentRoot "/httpboot" * 重启服务 .. code-block:: bash $ sudo systemctl restart httpd #. 设置 ipxe 模板 .. code-block:: bash [pxe] pxe_bootfile_name=undionly.kpxe pxe_config_template = $pybasedir/drivers/modules/ipxe_config.template #. 安装 iPXE 相关包 .. code-block:: bash yum install ipxe-bootimgs cp /usr/share/ipxe/{undionly.kpxe,ipxe.efi} /tftpboot #. 重启 conductor 服务 .. code-block:: bash sudo systemctl restart openstack-ironic-conductor