Ansible with_fileglob пропускает

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

Мой сценарий выглядит так:

 - 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, который, я надеюсь, Ansible скопирует в /etc/nginx/sites-available/

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

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


person Dubby    schedule 07.02.2014    source источник
comment
Хорошо, похоже, я могу использовать здесь только абсолютные URL-адреса. Может быть, это потому, что я использую через Vagrant, используя vagrant Provision, но это не идеально. Я думал, что могу использовать переменные, которые включают абсолютные URL-адреса, но, похоже, они должны быть статическими, чтобы работать.   -  person Dubby    schedule 07.02.2014
comment
Хорошо, я нашел проблему. Кажется, я ухватился за использование старых примеров при создании переменных. Я использовал: templates_dir: src="{{ base_dir }}/roles/common/templates", когда мне следовало использовать `templates_dir: {{base_dir}} / roles / common / templates`   -  person Dubby    schedule 08.02.2014


Ответы (1)


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

При использовании относительного пути с with_fileglob в роли Ansible разрешает путь относительно каталога роли // файлы.

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

person asgalon    schedule 10.12.2014
comment
вы также можете переместить файлы из каталога templates в каталог files. - person Andrew; 24.06.2016
comment
Есть несколько магических переменных, таких как playbook_dir и role_path. Было бы лучше использовать их вместо ../, потому что роли довольно часто могут быть установлены или сохранены где-то еще. Не полагайтесь на структуру только одного проекта - person Nick Roz; 01.07.2016