2017-02-10 9 views
0

私はプレイブックを持っていて、ホストファイルに文字列のリストを定義したいと思います。ここで可能、ホストインベントリのリストを定義する方法はありますか?

は、私のホストファイルです:

[dashboard] 
1.2.3.4 dashboard_domain=test site_domain=['one','two','foo', 'bar'] 

ここで私はlist documentationを使用して書き込もうと私の脚本だ:しかしansible-playbook -i hosts ping.yml原因このエラーで、この脚本を実行している

--- 
- hosts: dashboard 
    gather_facts: False 
    remote_user: ubuntu 
    become: yes 

    tasks: 

    - name: ping 
     ping: 

    - debug: 
     msg: "Domain: {{dashboard_domain}}" 

    - debug: 
     msg: "Site: {{ item }}" 
     with_items: "{{site_domain}}" 

TASK: [debug ] ****************************************************************
fatal: [1.2.3.4] => with_items expects a list or a set

これは転送の問題であるようです脚本にホストファイルから定義されたリスト脚本に直接リストを定義するために動作します:

--- 
- hosts: dashboard 
    gather_facts: False 
    remote_user: ubuntu 
    become: yes 
    vars: 
    site_domain: ['one','two','foo', 'bar'] 
    tasks: 

    #### APPLY HTTP-AUTH #### 
    - name: ping 
     ping: 

    - debug: 
     msg: "Domain: {{dashboard_domain}}" 

    - debug: 
     msg: "Site: {{ item }}" 
     with_items: "{{site_domain}}" 

答えて

1

ちょうど変数の値を引用:それはINI形式のインベントリファイルの場合には思える

[dashboard] 
1.2.3.4 dashboard_domain=test site_domain="['one','two','foo', 'bar']" 

をAnabilitiesは、引用符で囲まれていない[で始まり、それを文字列として渡すと変数値を解析しません。


あなたの例について:あなたは本当に内部のスペースを持っている場合は、インベントリファイルを読み込んでexpected key=valueエラーを取得していない理由を私はわかりません。

関連する問題