一部のミニオンはNATの背後にあり、マスターから見たパブリックIPアドレスを取得したいと思います(ファイアウォールの目的で)。
External_ipグレインがありますが、それはサードパーティのサービスに依存しており、私にとっては確実に機能しません。
まず、各ミニオンに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デバイスから取得する必要があります。おそらく、その情報を取得するためにソルトでランナーを作成できます。
または、パブリックIPアドレスなどの情報を含むファイルをミニオンのファイルシステムにドロップするだけで、少し簡単に取得できます...