如何确定远程完成服务器安装

问题描述

我使用 linode 使用带有预置文件自动 ISO 安装程序来安装 Debian。在远程机器上安装操作系统后,它有一个最终命令,它将使用 preseed 命令自动重新启动操作系统,如下所示:

d-i finish-install/reboot_in_progress note

那么,有没有一种以编程方式确定操作系统已通过我的本地机器成功安装在 linode 上的方法

我能想到的一个想法是,我可以创建一个带有 while 循环的 bash 脚本来确定服务器端口 22 是否打开,然后它就安装完成了。像这样:

#!/bin/bash
while :
do
 :
if [ linode_server_port_22_is_open ]; then
  echo "Installation has finished" #because port 22 is open
  break; # break the loop
else
  # PORT 22 is not open,sleep 10 seconds before re-check next loop
  echo "Checking installation progress in the next 10 seconds ..."
  sleep 10
fi
done

代码只是一个原型,但有没有更好的方法来做到这一点?

此外,我可以在 Debian 操作系统在 linode 远程机器上完成安装之前运行任何脚本。我正在寻找一种更好的方法来确定远程机器如何告诉我它已完成安装操作系统,而不是检测远程 SSH 的开放端口 22。

有没有办法让远程机器广播它已经完成安装的状态?

用例:

我想要这个的原因是,从一开始我就已经实现了一个脚本,该脚本将使用 preseed.cfg 创建一个 ISO,然后它会在救援模式下自动将此 ISO 文件上传到 linode(脚本可以将 linode 置于救援模式) ,然后提取 ISO 以安装操作系统。因此,从零开始(创建新的 linode 磁盘、配置)现在是确定操作系统是否已完成安装的部分。如果我可以确定操作系统已经安装完成,那么我将能够自动登录到服务器并远程安装 Directadmin。所以,我的目标是运行一个脚本,从零开始在 linode 上部署服务器,直到我安装了完整的 Directadmin 和准备好的网站(我已经完成了 Directadmin 部分)。现在唯一的问题是如何确定操作系统已完成安装,以便我可以使用该状态为其他自动功能继续我的脚本。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...