如何通过代理检查远程服务器是否启动?

如何通过代理检查远程服务器是否启动?

我有一系列实验室 Linux 服务器 (centos/rh),它们是使用通过 kickstart 文件自动 PXE 安装构建的。我想使用另一个自动化过程 (ansible) 来监控安装何时完成。通常我会使用一个简单的工具,ping但这些服务器只能通过内部代理进行远程访问。

一个想法是通过 kickstart 添加 httpd 和一个简单的 index.html 页面,然后使用curl它来循环请求该页面。虽然这可行,但对于这样一个简单的检查来说,它似乎相当繁重,然后需要额外的步骤来移除所有这些负担。

我知道 ping 无法在堆栈的这个级别上运行,但是有没有办法完成类似的事情:

ping labhost --proxy 192.168.0.2:3128

答案1

允许从运行 Ansible 的主机通过 ssh 连接到新实例。可以直接路由,也可以通过类似 ssh 堡垒的东西连接到新实例ProxyJump。您需要知道初始凭证,因此请使用 kickstart 安装 ssh 密钥。

将主机添加到清单并在其上运行游戏。 wait_for_connection模块将尝试多次连接它。游戏将需要 gather_facts: False跳过主机信息的隐式收集,因为无法启动它。

Ansible 的ping模块不是 ICMP echo。它远程进入盒子,默认情况下是 ssh,并得到一个简单的响应。


ICMP 是 IP 的一个功能,与 TCP 或 UDP 位于不同的层。将 ICMP 数据包代理到 IP 数据包之外的地方没有多大意义。

相关内容