2014-02-07 3 views
9

Я собираю Anseible Playbook, предназначенный для создания веб-серверов. Однако я застреваю при попытке использовать with_fileglob, потому что Ansible продолжает сообщать, что он пропускает копию файлов vhost nginx.Ansible with_fileglob пропускает

Мой сценарий выглядит следующим образом:

- name: Nginx | Copy vhost files 
    copy: src={{ item }} dest=/etc/nginx/sites-available owner=root group=root mode=600 
    with_fileglob: 
    - "{{ templates_dir }}/nginx/sites-available/*" 
    notify 
    - nginx-restart: 

{{ templates }} было определено в других местах ролей/общие/шаблоны. В этом каталоге у меня есть файл с именем webserver1, что я надеюсь, что анзибль скопирует в /etc/nginx/sites-available/

Я нашел других людей, обсуждающих эту проблему, но никаких ответов не помогли мне решить эту проблему. Почему Ansible пропускает файлы?

Редактировать: Я должен указать, что хочу использовать with_fileglob (а не прямую копию), поскольку я хочу перебирать другие виртуальные хосты в будущем.

+0

ОК, мне кажется, что я могу использовать только абсолютные URL-адрес здесь. Возможно, это потому, что я использую бродягу, используя бродяжничество, но это не идеально. Я думал, что могу использовать переменные, которые включают абсолютные URL-адреса, но, похоже, он должен быть статичным, чтобы работать. – Dubby

+0

Хорошо, я нашел проблему. Кажется, я схватил использование старых примеров при создании переменных. Я использовал: templates_dir: src = "{{base_dir}}/role/common/templates", когда я должен был использовать 'templates_dir:" {{base_dir}}/role/common/templates "' – Dubby

ответ

13

Посмотрите на http://docs.ansible.com/playbooks_loops.html#looping-over-fileglobs, Примечание 1:

При использовании относительного пути с with_fileglob в ролях, анзибль решает путь относительно ролей // файлов каталога.

Так получить доступ к файлу в каталоге шаблонов, вы можете начать относительный путь с ../templates

+0

вы также могли бы переместите файлы из каталога '' 'templates''' в каталог' '' files'''. –

+2

Есть несколько магических переменных, таких как 'playbook_dir' и' role_path'. Было бы лучше использовать их вместо '../', потому что роли часто могут быть установлены или сохранены где-то в другом месте. Не полагайтесь на структуру только одного проекта –

Смежные вопросы