Назад | Перейти на главную страницу

Цикл включения Ansible в роли в многоузловой среде Vagrant не работает

Запуск Vagrant с несколькими хостами с CentOS7 в качестве контроллера Ansible и несколькими клиентами дистрибутива Linux для тестирования сценариев Ansible.

Подключите общие файлы NFS в / vagrant / на контроллере Cent7 Ansible. В файле ansible.cfg роли изначально показаны как / vagrant / Ansible / roles.

Вызов роли ... Просматриваем задачи / main.yml и доходим до include_tasks: some_yaml_file.yml который представляет собой цикл по блоку задач.

По сути, это include_tasks, который вызывает «блок» задач через другой файл, поскольку это наиболее чистый способ перебора переменной, насколько я понимаю вложенный цикл над структурой блока. Кроме того, импорт не может этого сделать при тестировании этого сценария.

- name: "Iterate over crontab files."
    include_tasks: ./tasks/crontab_files.yml
    loop: "{{ user_data }}"

Обратите внимание на ./tasks/ в пути. Это не относится к файлу, но возвращает ошибку, которая точно соответствует пути. Я безуспешно пробовал множество вариантов, включая полный путь на диске.

Тем не менее, функциональность задачи отлично работает как два простых сценария с определенными переменными. Однако в роли он выдает сообщение о том, что не может найти "включенный" playbook.

Игра с различными путями и косой чертой в конце добавлена ​​к:
roles_path = /vagrant/Ansible/roles/
наконец, он правильно отображает путь на диске:
/vagrant/Ansible/roles/adim/tasks/crontab_files.yml туда, где находится файл.

По-прежнему ошибки с:

FAILED! => {"reason": "Could not find or access '/vagrant/Ansible/roles/adim/tasks/crontab_files.yml' on the Ansible Controller."}

Что я упускаю или делаю не так?

Спасибо за помощь и отзывы!

В include_task относительно положения папки задач роли. У вас есть следующая структура

playbook.yml
roles/tasks/main.yml
roles/tasks/crontab_files.yml

В вашем main.yml роли вам нужно определить местоположение относительно main.yml.

- name: "Iterate over crontab files."
  include_tasks: crontab_files.yml
  loop: "{{ user_data }}"