web-dev-qa-db-ja.com

マスターからsalt-minionのパブリックIPアドレスを取得するにはどうすればよいですか?

root@I-Kod:/home/i-kod/Desktop/ass1# salt '*' network.ip_addrs
{
   "I-Kod": [
       "10.0.1.215"
   ]
}
 {
   "neha-HP-Pavilion-15-Notebook-PC": [
    "10.0.0.231"
   ]
  }
  {
      "Pavilion": [
          "10.0.1.214"
   ]
  }
  {
      "Pavilion": [
          "10.0.1.214"
   ]

}

プライベートIPアドレスを見つけるためにsalt.modules.networkを使用しましたが、ミニオンからsalt-masterを使用してパブリックIPアドレスを取得する方法が見つかりませんでした。

http://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.network.html

このドキュメントを使用しました。ソルトが正しく機能しているかどうかを判断するには、パブリックIPが必要です。

1
I-Kod

次のコマンドを実行して、ミニオンのパブリックIPアドレスを取得します。

salt '*' cmd.run "curl http://ipecho.net/plain"

詳細については、こちらをご覧ください: https://serverfault.com/a/616423/53467

5
pincoded

ピンコード化されたものは機能しますが、後で誰かがこれに遭遇した場合に備えて、外部IPを穀物として持つこともできます。

import requests

def external_ip():
    """
    Return the external IP address reported by ipecho.net
    """
    try:
        r = requests.get('http://ipecho.net/plain')
        ip = r.content
    except:
        ip = ''
    return {'external_ip': ip}

差出人: https://Gist.github.com/jfrost/7894718

5
savamane