Роли Vagrant-Chef: повар-соло не нашел роли в моей кулинарной книге
У меня есть куча файлов поваренной книги, некоторые из которых определены как рецепты, а некоторые определены как роли. Так, например, роль верхнего уровня:
run_list ("role [el-drupal-cookbook:: drupal_lamp_dev]", "recipe [drupal-site-jnl-el-cookbook:: default]")
Цель вышеизложенного состоит в том, чтобы настроить сервер в качестве сервера ламп drupal, а затем установить на нем определенный веб-сайт.
Я звоню все это из Vagrant, используя запрос add_role, и библиотекарь-шеф собирает все кусочки вместе. Путь к кулинарной книге - "кулинарные книги", а role_path - "роли".
Когда это выполняется, он находит роль верхнего уровня (которая находится в том же каталоге, что и Vagrantfile), но не те, которые находятся в разных кулинарных книгах.
Поскольку роли и рецепты хранятся в кулинарных книгах, которым должен служить путь к кулинарной книге, я явно что-то упускаю. Кто-нибудь может помочь?
Я прикрепил сообщение об ошибке ниже:
[2013-10-24T14:37:28+00:00] INFO: Setting the run_list to ["recipe[apt]", "recipe[git]", "role[drupal-jnl-el]", "recipe[drupal-site-jnl-el-cookbook::disable-cdn]"] from JSON
[2013-10-24T14:37:28+00:00] ERROR: Role el-drupal-cookbook::drupal_lamp_dev (included by 'role[drupal-jnl-el]') is in the runlist but does not exist. Skipping expand.
================================================================================
Error expanding the run_list:
================================================================================
Missing Role(s) in Run List:
----------------------------
* el-drupal-cookbook::drupal_lamp_dev included by 'role[drupal-jnl-el]'
Original Run List
-----------------
* recipe[apt]
* recipe[git]
* role[drupal-jnl-el]
* recipe[drupal-site-jnl-el-cookbook::disable-cdn]
РЕДАКТИРОВАТЬ:
Vagrantfile говорит:
# define where things have been collected together by librarian-chef
chef.cookbooks_path = ["cookbooks"]
chef.roles_path = ["roles"]
# this installs most of the infrastrucutre required to support a drupal instance
chef.add_recipe "apt" # add this so we have updated packages available
chef.add_recipe "git"
# chef.add_recipe "openvpn" # vpn needed, but using tunnelblick on mac host instead.
# This role represents our default Drupal development stack.
chef.add_role "drupal-jnl-el"
2 ответа
Это говорит
Missing Role(s) in Run List:
----------------------------
* el-drupal-cookbook::drupal_lamp_dev included by 'role[drupal-jnl-el]'
Это означает, что roles/drupal.{rb,json}
пытается включить role[el-drupal-cookbook::drupal_lamp_dev]
, который должен быть recipe[el-drupal-cookbook::drupal_lamp_dev]
тем не мение.
Вам нужно добавить эту роль в свой список ролей ножей, попробуйте
knife role from file your_role_name.js
По умолчанию команда будет искать эту роль в каталоге role / (в корне вашего проекта)