2012-06-30 169 views
0

因此,我的情况是,我有一台计算机(比如M)使用PXE引导启动并在该计算机中安装操作系统(如CentOS)。 M不会有任何监视器或键盘连接到它。PXE引导安装操作系统并使用程序获得其成功的操作系统安装状态

PXE启动服务器也从一个CentOS的机器上运行(说B)

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

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

我会很高兴,如果你们可以建议最好的和有效的方式做到这一点。

回答

0

安装完成后(取决于安装方法 - 对于kickstart,使用安装后脚本),使用NFS从M上访问B上的目录是一种非常简单的方法。在某个目录中创建一个文件,作为安装完成的标志。在机器'B'上,您可以使用inotify功能检测完成情况(从外壳脚本中检测到inotifywait,否则请使用libinotify)。

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

+0

太棒了!将尝试。 :) –

+0

Brian:没有NFS的其他方式?没关系,如果它很难... –

2

我的建议是让服务器与Web服务器/ Web服务通话,说安装已完成,并传递值以标识它是哪台机器。

0

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

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

我有一个预先定义好的文件,它是一个模板,它被呈现给每台机器。在debian安装期间,有机会运行延迟命令,我使用它从服务器下载脚本并在目标环境中执行脚本。该脚本发送另一个POST请求,通知服务器第一阶段安装已完成,并且还安装第二阶段安装脚本。服务器然后删除特定的pxeconfig文件。默认的pxeconfig文件将默认在10秒内从硬盘驱动器启动,因此当主机再次从网络启动时,默认情况下会从硬盘驱动器启动,并继续安装。

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

相关问题