2016-11-09 15 views
-1

私はAnsibleを提供するAWS EC2インスタンスをしようとしているが、特定のタスクにそれが返されます。Ansibleは:AnsibleUndefinedVariable: 'ansible_eth1'

"AnsibleUndefinedVariable 'ansible_eth1は' 未定義です"

私の質問です:「地獄」はどこですか?私はこの意味でこの変数を見つけましたか?私はポイントが明らかにされている願っています、ということだと思います

# For each instance where collectd is running, we define 
# hostname proper to that instance. When metrics from 
# multiple instances are aggregated, hostname will tell 
# us were they came from. 

Hostname "dash" 

# Fully qualified domain name, false for our little lab 
FQDNLookup false 

# Plugins we are going to use with their configurations, 
# if needed 
LoadPlugin cpu 

LoadPlugin df 
<Plugin df> 
     Device "/dev/sda1" 
     MountPoint "/" 
     FSType "ext4" 
     ReportReserved true 
</Plugin> 

LoadPlugin interface 
<Plugin interface> 
     Interface "eth0" 
     Interface "eth1" 
     IgnoreSelected false 
</Plugin> 

LoadPlugin network 
<Plugin network> 
    <Server "{{ ansible_eth1.ipv4.address }}" "25826"> 
    </Server> 
</Plugin> 

LoadPlugin memory 

LoadPlugin syslog 
<Plugin syslog> 
     LogLevel info 
</Plugin> 

LoadPlugin swap 

<Include "/etc/collectd/collectd.conf.d"> 
     Filter "*.conf" 
</Include> 

:私は「私はansible_eth1変数を発見したところ、」Googleで検索し、そのようなことが、運・

は私のcollectd.conf.j2ではありません。事前に

おかげで

+0

実際のヘルプを得るには、問題のタスクが記載されたプレイブックスニペットと完全なエラーメッセージを追加してください。 –

+0

OK、プレイブックとエラーメッセージを回答として投稿します –

+0

答えとして投稿するのではなく、追加情報でOPを編集する必要があります。問題は 'collectd.conf.j2'テンプレートの中にあります。 –

答えて

0

あなたcollectd.cong.j2は、未定義の変数ansible_eth1.ipv4.addressを使用しています。 あなたは、デバッグを使用して、それをチェックすることができます。

- name: Display all variables/facts known for a host 
    debug: var=hostvars[inventory_hostname] 

あなたは、在庫やansibleを受け入れ、他の場所でその変数を定義する必要があります。 ansible documentationを見てください。

また、私はあなたのケースでは、その変数のために#を使用するべきではないと思います。