2017-01-15 2 views
1

Ansible役割の基本的なディレクトリ構造は次のとおりです。Anipalのロールテンプレートまたはファイルフォルダ内にディレクトリ構造を含めることはできますか?

rolename 
    files 
    templates 
    etc 
     hosts 
    tasks 
    ... 

だから私の仕事は見ることができる:

rolename 
    files 
    templates 
    tasks 
    ... 

が今私の質問は、ファイルやテンプレートフォルダは、このようにそれらの内側にディレクトリ構造を持つことができています以下のような:

- name: Approve hosts file 
    template: 
    src: ./etc/hosts (I WANT TO REFERENCE THE FILE INSIDE THE TEMPLATES FOLDER) 
    dest: /etc/hosts 

は、これは動作しません:(

テンプレートフォルダ内のファイルをどのように参照しますか?

重要ファイルシステムを模倣したいので、私はファイルがテンプレートフォルダ構造を見るだけでどこにコピーされるのか知っているので、テンプレートフォルダ内にフラットな構造を望んでいません。

FYIフラットな構造を使用すると効果があります。

+0

申し訳ありませんが - 、これは正常に動作します私の部分 – danday74

+0

上のエラーを確認した - エラーが何でしたか? – m4grio

答えて

2

質問に含まれている構文は問題ありません。

証明:

#!/bin/bash 

mkdir -p ./roles/role1 
mkdir -p ./roles/role1/files 
mkdir -p ./roles/role1/templates/etc 
mkdir -p ./roles/role1/tasks 

cat >./roles/role1/tasks/main.yml <<TASKS_END 
--- 
- template: 
    src: ./etc/hosts 
    dest: /tmp/hosts 
TASKS_END 

cat >./roles/role1/templates/etc/hosts <<TEMPLATE_END 
{{ ansible_managed }} 
TEMPLATE_END 

cat >./playbook.yml <<PLAYBOOK_END 
--- 
- hosts: localhost 
    gather_facts: no 
    connection: local 
    roles: 
    - role1 
PLAYBOOK_END 

ansible-playbook ./playbook.yml 
cat /tmp/hosts 

結果:私のミス

PLAY [localhost] *************************************************************** 

TASK [role1 : template] ******************************************************** 
changed: [localhost] 

PLAY RECAP ********************************************************************* 
localhost     : ok=1 changed=1 unreachable=0 failed=0 

Ansible managed 
+1

私のミスに対する謝罪 – danday74

関連する問題