0

所以,这是我的情况,我有一台机器(比如 M)要使用 PXE 引导来引导,并在该机器上安装一个操作系统(比如 CentOS)。M 不会连接任何显示器或键盘。

PXE 引导服务器也在 CentOS 机器上运行(比如 B)

我将如何编写位于机器 B 中的程序(bash 脚本、Java 程序)并获取机器 M 已成功完成操作系统安装的状态/通知。

请注意,我无法手动检查操作系统是否已完成安装。我需要自动化这个过程。

如果你们能提出最好和最有效的方法,我会很高兴。

4

3 回答 3

2

我的建议是让服务器与网络服务器/网络服务对话,说安装完成,并传递值来识别它是哪台机器。

于 2013-03-21T03:14:05.187 回答
1

我最近在使用 debian PXE 安装程序时遇到了这个问题。

我将主机设置为从网络启动。我用机器的 system-uuid 发送一个 POST 请求来识别它并告诉服务器它需要安装。当服务器收到此请求时,它会创建一个特定的 pxelinux.cfg 文件,然后将 uuid 作为文件名,确保特定主机使用特殊参数获取 debian 安装。

我有一个作为模板的预置文件,它是针对每台机器呈现的。在 debian 安装期间,有机会运行一个后期命令,我使用它从服务器下载脚本并在目标环境中执行它。此脚本发送另一个 POST 请求,通知服务器第一阶段安装已完成,并且还为第二安装阶段安装脚本。然后,服务器会删除特定的 pxeconfig 文件。默认的pxeconfig文件会默认十秒后从硬盘启动,所以当主机再次从网络启动时,默认是从硬盘启动,继续安装。

你可以在这里查看代码: https ://github.com/umeboshi2/paella

于 2014-04-27T20:59:51.337 回答
0

一个足够简单的方法是在安装完成后使用 NFS 从 M 访问 B 上的目录(取决于安装方法——对于 kickstart,使用安装后脚本)。在某个目录中创建一个文件作为安装已完成的标志。在机器“B”上,您可以使用inotify功能来检测完成情况(通过inotifywaitshell 脚本或libinotify其他方式)。

如果 NFS 由于某种原因被禁止,您应该能够使用scpsshfs相当容易地使用。最复杂的部分是复制生成的密钥。

于 2012-06-30T14:31:48.193 回答