2017-06-06 14 views
1

で特定のホスト名のIPを取得し、私はおおよそ次のようになり、ホストファイルがあります。ansible

[kibanamaster] 
efk host_ip host user passwd 
[elasticnode] 
esnode host_ip user passwd 

を、私は

- name: get ip address node1 
    debug: var=hostvars[inventory_host]['esnode']['ansible_default_ipv4']['address'] 
    register: es_node1 

のスタイルで何かをしようとしています。しかし、私は変数ではありません取得定義された。誰でも手伝ってくれる?

EDIT: 私は

debug: var=hostvars[LOG1]['esnode']['ansible_default_ipv4']['address'] 
register: node_1 

をすれば、私は

{"hostvars[LOG1]['ansible_default_ipv4']['address']": "VARIABLE IS NOT DEFINED!"}

答えて

1

hostvarsmagic variableを取得するには、インベントリ内のホスト名にちなんで名付けられたキーを持つ辞書です。

だから、試してみたいことがあります。

hostvars['esnode']['ansible_default_ipv4']['address'] 

esnodeホストのIPアドレスを取得します。

+0

これは機能します。ありがとうございました。 – qubsup

+0

OKこれを元に戻しても動作しません - hostvars [LOG1] ['ansible_default_ipv4'] ['address'] ":" VARIABLEは定義されていません " – qubsup

+0

ここでは「LOG1」とは何ですか? –