有些小伙伴在NAT后面,我想从主站看到他们的公共IP地址(为了防火墙的目的)。
有external_ip粮食,但AFAIK它依赖于第三方服务,甚至不能为我工作可靠。
首先确保你的每个奴才都安装了curl包。
那么你可以使用:
salt '*' cmd.run "curl ifconfig.me"
如果ifconfig.me没有响应,您可以使用另一个提供程序:
salt '*' cmd.run "curl -s icanhazip.com"
每个小兵都会用外部IP地址回应:
zeus.example.com: 1.2.3.1 hera.example.com: 1.2.3.2 apollo.example.com: 1.2.3.3 athena.example.com: 1.2.3.4
如果curl没有安装,则回应将是:
castor.example.com: /bin/bash: curl: command not found
NAT背后的计算机并不知道公共IP地址的含义,我不认为你能从自己的奴才中获得这些信息。
这些信息必须来自您的NAT设备,无论是防火墙,交换机还是其他设备。 也许你可以创build一个盐跑步者为你检索信息。
或者,你可以简单地在你的奴才的文件系统中的一个文件,其中包含的信息,如公共IP地址,这可能会更容易检索…