Роли 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 / (в корне вашего проекта)

Другие вопросы по тегам