2017-10-14 7 views
1

で変数をGROUP_NAMES:私は取得していますは、私はこの脚本を実行したときに、私はいくつかの問題を実行していますansible

- hosts: all 
    connection: local 
    tasks: 
    - template: src=/etc/ansible/{{group_names}}/common.j2 dest=/etc/ansible/configs/{{inventory_hostname}}.txt 
    name: create common config snippets 

エラーは次のとおりです。

fatal: [R1]: FAILED! => {"changed": false, "failed": true, "msg": "Unable to find '/etc/ansible/[u'ios']/common.j2' in expected paths."} 
fatal: [R2]: FAILED! => {"changed": false, "failed": true, "msg": "Unable to find '/etc/ansible/[u'ios1']/common.j2' in expected paths."} 

、ここでは私のグループである:

/etc/ansible# cat hosts | grep ios   
[ios] 
[ios1] 

ここには私のcommon.j2ファイルがあります:

/etc/ansible# ls ios1/ 
common.j2 


/etc/ansible# ls ios/ 
common.j2 

group_names[u'group_names]を返す理由を詳しく説明できますか?

+0

'group_names' [リストです](https://docs.ansible.com/ansible/latest/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts)。そのようなファイル名で置き換えるのは意味がありません。 – larsks

+0

私はできないことに新しいです、私はそれを知らなかったし、迅速に答えてくれてありがとう。 – NANIS

答えて

1

group_names(その理由は、それが[ ]に囲まれているため) - ホストは複数のグループに属している可能性があります。あなたが決定する必要があり

は、あなたの目的です:

- hosts: all 
    connection: local 
    tasks: 
    - name: create common config snippets 
     template: 
     src: /etc/ansible/{{item}}/common.j2 
     dest: /etc/ansible/configs/{{inventory_hostname}}.txt 
     with_items: "{{group_names}}" 
  • あなたがしたい場合:

    • あなたはすべてのグループのためにファイルをインクルードしたい場合は、ループを追加する必要があります単一のグループを追加すると、単一の要素(group_names[0])を参照することはできますが、それは実用的ではないようです...

  • +0

    皆さんは素晴らしいです。 – NANIS

    関連する問題