![如何通过代理检查远程服务器是否启动?](https://linux22.com/image/772855/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E4%BB%A3%E7%90%86%E6%A3%80%E6%9F%A5%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%98%AF%E5%90%A6%E5%90%AF%E5%8A%A8%EF%BC%9F.png)
我有一系列实验室 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 数据包之外的地方没有多大意义。