В моей пьесе есть следующая структура каталогов:
deploy-thing
├── README.md
├── files
│ ├── thing.service
│ └── ld.local.conf
├── main.yml
├── roles
│ ├── ansible-role-add-swap
│ │ ├── README.md
│ │ ├── defaults
│ │ │ └── main.yml
│ │ └── tasks
│ │ └── main.yml
│ ├── ansible-role-build-pkgs
│ │ └── tasks
│ │ └── main.yml
│ ├── ansible-role-deploy-other-thing
│ │ ├── README.md
│ │ ├── main.yml
│ │ ├── roles
│ │ │ ├── ansible-role-build-pkgs
│ │ │ │ └── tasks
│ │ │ │ └── main.yml
│ │ │ └── ansible-role-build-redis
│ │ │ ├── README.md
│ │ │ └── tasks
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
└── vars.yml
В main.yml вызывается следующее:
roles:
- {role: ./roles/ansible-role-deploy-other-thing}
В ролях / ansible -role- deploy-other-thing / tasks / main.yml, называется следующее:
- include_role:
name: ansible-role-build-redis
При запуске это include_role
вызывает следующую ошибку:
ОШИБКА! роль 'ansible -role-build-redis' не найдена в /Users/myuser/playbooks/deploy-thing/roles:/Users/myuser/.ansible/roles:/usr/share/ansible/roles:/ etc / ansible / role: / Users / myuser / playbooks / deploy-thing
Похоже, что родитель выполняет поиск только по своему пути ролей, а не по пути ролей роли, которую мы используя (ansible -role-deploy-other-thing). Как я могу заставить его искать свой собственный путь к ролям, позволяя мне развертывать роли внутри ролей?