2017-01-15 5 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