Может ли существовать структура каталогов в папках шаблонов ролей или файлов Ansible?

Базовая структура каталогов роли Ansible:

rolename
  files
  templates
  tasks
  ...

Теперь мой вопрос: могут ли папки с файлами или шаблонами иметь внутри себя структуру каталогов, например:

rolename
  files
  templates
     etc
       hosts
  tasks
  ...

Итак, моя задача может выглядеть так:

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

Это не работает :(

Как указать ссылку на файл в папке шаблонов?

ВАЖНО Мне не нужна плоская структура внутри папки шаблонов, потому что я хочу имитировать файловую систему, чтобы я знал, куда будет скопирован файл, просто взглянув на структуру папки шаблонов.

К вашему сведению, когда я использую плоскую структуру, она работает.


person danday74    schedule 15.01.2017    source источник
comment
извините за мою ошибку - подтвердил, что это работает нормально, ошибка с моей стороны   -  person danday74    schedule 15.01.2017
comment
- в чем была ошибка?   -  person m4grio    schedule 05.07.2017


Ответы (1)


Синтаксис, который вы включили в свой вопрос, работает нормально.

Доказательство:

#!/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
person techraf    schedule 15.01.2017
comment
большое спасибо, что нашли время, чтобы ответить на это - извинения за МОЮ ошибку - person danday74; 15.01.2017