2011-10-17 3 views
13

Я новичок в рубине и шеф-поваре. Я разрабатывал поваренные книги, фиксировал их, загружал их на Chef Server, а затем развертывал их на клиентском шеф-поваре с изменением роли, за которым следовал «клиент-клиент» на клиенте. Этот процесс медленный.Как я могу разработать и отлаживать поваренные книги и рецепты поваров в среде IDE (например, Eclipse)?

Как я могу, используя IDE (Eclipse в моем случае), разрабатывать кулинарные книги и иметь возможность отлаживать (устанавливать контрольные точки, просматривать переменные и т. Д.) И запускать их, не загружая их на сервер шеф-повара, а затем оттягивая их обратно работает шеф-клиент?

  • Я использую Eclipse, 3.7 Indigo с "Dynamic Languages ​​Toolkit - Инструменты Ruby развития 3.0.0.v20110424-7Z - E_EkMYXO4k101442" плагин
  • Я разрабатываю Opscode Chef поваренные с 10.x Шеф codeline
  • Я работаю на 10.10 системе Ubuntu развивающейся поваренные будет работать на RHEL/CentOS 5 серверов
  • Мы запускаем наш собственный шеф-сервер (с открытым исходным кодом)

ответ

0

Я предпочитаю использовать chef-solo на цель виртуальная машина. Я проверить мои поваренные книги репо и перебирать локально с помощью шаблонного solo.rb:

path File.expand_path(File.dirname(__FILE__)) 
cookbook_path "#{File.expand_path(File.dirname(__FILE__))}/cookbooks" 
log_level ENV['CHEF_LOG_LEVEL'] && ENV['CHEF_LOG_LEVEL'].downcase.to_sym || :info 
log_location ENV['CHEF_LOG_LOCATION'] || STDOUT 
verbose_logging ENV['CHEF_VERBOSE_LOGGING'] 

Установка log_level для отладки помогает совсем немного, когда езда на велосипеде с бегуна.

+0

Можно ли установить точки останова и просмотреть переменные после приостановки выполнения этого пути? Может быть, какой-то способ включить отладку ruby ​​вне IDE, но в рамках своего шеф-повара? –

+1

Для исследовательской и начальной разработки вы можете посмотреть на [shef] (http://wiki.opscode.com/display/chef/Shef), Opscode REPL. Это просто инструментальная сессия irb, поэтому вы можете делать все, что захотите, с временем выполнения. – jodell

+1

шеф-повар хороший. это просто недостаток функции, такой как поиск шеф-повара, который широко используется в многоузловой конфигурации. Я бы сказал, что [Berkshelf] (https://github.com/RiotGames/berkshelf) и [бродяга] (http://www.vagrantup.com/) будут хороши для тестирования поведения кулинарных книг. Если вы просто хотите проверить взаимодействие своих рецептов и атрибутов, [chefspec] (https://github.com/acrmp/chefspec) будет хорошо, что может обеспечить единичный тест, например тестовый отчет. – shawnzhu

3

Вы можете использовать Eclipse, как простой редактор для шеф Cookbooks. У вас не будет поддержки IDE и отладки, но некоторые люди, подобные мне, могут в любом случае предпочесть.

Если вы используете редактор Ruby на Eclipse, вы можете получить подсветку синтаксиса для файлов .rb Ruby, но я еще не пробовал это.

Вы можете сделать любую папку проекта Eclipse (например, шеф-репо или конкретного cookcook) путем добавления .project файл с внутренней стороны:

 
<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>PROJECT_NAME</name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
    </buildSpec> 
    <natures> 
    </natures> 
</projectDescription> 

Затем в Eclipse, выберите File -> Import -> Общие -> Существующие проекты в рабочее пространство и выберите папку, в которую вы добавили файл .project.

0

ли какую-то работу на Кеплера и обнаружили, что:

  • Импорт Chef как проект рубина, как правило, не удается, так как импортер, кажется, не в состоянии признать шеф-специфические структуры, как «поваренных книг» и т.д., как места для источника ,Все, что вы видите, это библиотека интерпретатора ruby.
  • Принудительный импорт рубин для просмотра папок как источника вручную (объявить исходную папку) также терпит неудачу, потому что код в папке и любые подпапки не отображаются
  • Импорт в качестве общего проекта работает с точки зрения отображения всех структур на основе шеф-повара и их кода, но код не распознается как код ruby, и нет никаких возможностей, связанных с синтаксисом.
  • Импорт в качестве общего проекта, а затем добавление рубинового строкового объекта и рубиновой природы . Работа. Все файлы видны, а редактирование с помощью редактора ruby ​​доступно с подсветкой синтаксиса.

Короче, добавьте это:

<buildSpec> 
    <buildCommand> 
     <name>org.eclipse.dltk.core.scriptbuilder</name> 
     <arguments></arguments> 
    </buildCommand> 
</buildSpec> 
<natures> 
    <nature>org.eclipse.dltk.ruby.core.nature</nature> 
</natures> 

Я сомневаюсь, есть ли отладка и т.д. - не моя цель, как я работать на Linux, но, по крайней мере, у нас есть приличный редактор и интеграцию GIT!

Для безопасности также скопировал файл .buildpath в расположение проекта ... не уверен, что это необходимо. Родовые содержание:

<?xml version="1.0" encoding="UTF-8"?> 
<buildpath> 
    <buildpathentry kind="src" path=""/> 
    <buildpathentry kind="con" path="org.eclipse.dltk.launching.INTERPRETER_CONTAINER"/> 
</buildpath> 
0

инструментов разработки Eclipse, Ruby, но нет никакой поддержки для шеф поваренных книг по состоянию на 13 мая 2015 года, однако есть собственная альтернатива, если вы хотите.

RubyMine 7 IDEsupports Chef с автоматической настройкой и определением навигации для стандартных ресурсов шеф-повара и их атрибутов. Ruby Mine основан на Intellij IDEA.

Вместо RubyMine, эта функция работает с IntelliJ IDEA при установке Chef integration plugin поверх ruby plugin

If you are student or teachers, или for education or training или for open source projects, вы можете подать заявку на бесплатную лицензию.

0

Может быть уже известно, но в настоящее время мы можем использовать ATOM с дополнительными пакетами языка шеф, ЛИНТЕР-foodcritic, ЛИНТЕР-рубиновый

https://atom.io/

1

Ответ не так прост, как на сегодняшний день Opscode не имеет «официального плагина».

Я провел последние несколько вечеров, создав плагин шеф-повара для затмения. Это очень голые кости прямо сейчас, если другие люди проявляют интерес к работе над этим, я мог бы добавить еще больше ... На данный момент он делает большую часть того, что мне нужно (создание новых поваренных книг, добавление рецептов, атрибутов, lwrps и т. Д.), в основном я положить затмение обертку вокруг инструментов шеф (повар, Berks, кухня, foodcritic и т.д.)

https://github.com/rleibman/chef-eclipse-plugin

у меня нет намерения извлекать этот плагин, если Opscode не придумывает свои собственные.

Я начал создавать этот плагин с большой помощью из этого урока: https://cvalcarcel.wordpress.com/2009/07/08/writing-an-eclipse-plug-in-part-1-what-im-going-to-do/.

Теперь, сказав все это ... если вам удобно с командной строкой, вы можете сделать большую часть того, что вам нужно, с вещами, которые уже есть: создать поваренную книгу с обоими шеф-поварами или шеф-поваром, например.г:

повара генерировать поваренной my_cookbook

А затем создать новый проект рубина в затмении открыло поваренную книгу вы только что создали. После его создания вы можете редактировать рубиновые файлы и т. Д. Вы также можете использовать все другие функции шеф-повара (например, рецепт для шеф-повара), чтобы помочь вам начать работу.

+2

Я рекомендую вам поделиться им. Если нет, этот ответ не поможет в этой проблеме. – zuazo

+0

Извините, я забыл, с тех пор я добавил. – rleibman

+0

Пожалуйста, добавьте более подробную информацию к своему сообщению. Я понимаю, что это ваше репо, но если вы перейдете или измените ссылку, этот ответ никому не поможет. – dckuehn

Смежные вопросы