2011-10-17 11 views
13

Jestem nowy w Ruby i Chef. Pracowałem nad książkami kucharskimi, angażując je, przesyłając je na serwer szefa kuchni, a następnie wdrażając do klienta szefa kuchni, zmieniając rolę, a następnie uruchamiając klienta "szef-klient". Ten proces jest powolny.Jak mogę rozwijać i debugować książki kucharskie i przepisy kucharskie w IDE (np. Eclipse)?

Jak mogę, używając IDE (Eclipse w moim przypadku), opracować książki kucharskie i być w stanie debugować (ustawiać punkty przerwania, oglądać zmienne itp.) I uruchamiać je bez przesyłania ich do serwera szefa kuchni, a następnie wycofując je z klient-szef kuchni?

  • Używam Eclipse 3.7 Indigo z "Dynamic Languages ​​Toolkit - Ruby Narzędzia Rozwoju 3.0.0.v20110424-7Z - E_EkMYXO4k101442" wtyczki
  • Zajmuję kucharskie Opscode kucharz z 10.x Chef codeline
  • pracuję w systemie Ubuntu 10.10 rozwijającego kucharskie do uruchomienia na RHEL/Centosu 5 serwerów
  • Prowadzimy własną Chef Server (open source)

Odpowiedz

0

I mają tendencję do używania na chef-solo cel maszyna wirtualna. Sprawdzę mój kucharskie repo i iteracyjne lokalnie z matrycy 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'] 

Ustawianie log_level do debugowania pomaga trochę podczas jazdy na rowerze wraz z prowadnicą.

+0

Czy istnieje sposób ustalania pułapek i oglądania zmiennych po wstrzymaniu wykonywania w ten sposób? Być może jakiś sposób na włączenie debugowania ruby ​​poza IDE, ale w czasie pojedynku szefa kuchni? –

+1

W celu eksploracji i początkowego rozwoju, możesz zajrzeć do [shef] (http://wiki.opscode.com/display/chef/Shef), REPL z kodu źródłowego. To tylko oprzyrządowana sesja irb, dzięki czemu możesz robić wszystko, co chcesz, z uruchomionym tam środowiskiem wykonawczym. – jodell

+1

Szef-solo jest dobry. brakuje mu funkcji wyszukiwania szefów, która jest szeroko stosowana w konfiguracji wielowęzłowej. Powiedziałbym, że [Berkshelf] (https://github.com/RiotGames/berkshelf) i [vagrant] (http://www.vagrantup.com/) byłyby dobre do testowania zachowania książek kucharskich. Jeśli chcesz przetestować interakcję swoich receptur i atrybutów, [chefspec] (https://github.com/acrmp/chefspec) byłoby dobre, co może zapewnić test jednostkowy, taki jak raport z testów. – shawnzhu

3

Można używać Eclipse jako prosty edytor Chef Książki kucharskie. Nie będziesz mieć żadnego wsparcia dla IDE i debugowania, ale niektórzy ludzie tacy jak ja mogą i tak to preferować.

Jeśli używałbyś edytora Ruby w Eclipse, możesz uzyskać podświetlanie składni dla plików Ruby .rb, ale jeszcze tego nie próbowałem.

Można dokonać dowolnego folderu projektu Eclipse (na przykład kucharz-repo lub konkretnego cookcook) dodając .project plik z wewnątrz:

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

Następnie w Eclipse wybierz Plik -> Importuj -> Ogólne -> Istniejące projekty w obszarze roboczym i wybierz folder, w którym został dodany plik .project.

0

Czy jakąś pracę na Keplera i stwierdził, że:

  • Importowanie Chef jako projekt rubinowym zazwyczaj nie działa, ponieważ importer wydaje się niezdolny do rozpoznawania struktur Chef-specyficzny jak „kucharskie” itp jako lokalizacje źródła .Wszystko co widzisz jest biblioteka rubin interpreter
  • Zmuszanie import rubinowy, aby zobaczyć foldery jako źródła ręcznie (zadeklarować folder źródłowy) nie powiedzie się także dlatego, że kod w folderze, a wszelkie podfoldery nie są widoczne
  • Importowanie jako ogólny projektu działa pod względem wyświetlania wszystkich struktur opartych na Chef i ich kodu, ale kod nie jest rozpoznawany jako kod ruby, a nie ma żadnych funkcji związanych z syntezą.
  • Importowanie jako ogólny projekt, a następnie dodanie ruby ​​buildspec i rubinowej natury działa. Wszystkie pliki są widoczne, a edycja za pomocą edytora ruby ​​jest dostępna z podświetlaniem składni.

W skrócie, dodać to:

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

Wątpię jest jakaś debugowanie, etc - nie mój cel, jak uruchomić na Linuksie, ale przynajmniej mamy porządny edytor i integracji git!

Dla bezpieczeństwa skopiowano również plik .buildpath do lokalizacji projektu ... nie jest to konieczne. Zawartość generyczne są:

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

Dla Ruby narzędzia programistyczne Eclipse, nie ma wsparcia dla kucharskie kucharz na dzień 13 maja 2015 roku, jednak nie jest zastrzeżona alternatywą, jeśli chcesz.

RubyMine 7 IDEsupports Chef z automatyczną nawigacją kompletną i definicyjną dla standardowych zasobów Chef i ich atrybutów. Ruby Mine bazuje na Intellij IDEA.

Zamiast rubymine, funkcja ta działa z IntelliJ IDEA po zainstalowaniu Chef integration plugin na szczycie ruby plugin

If you are student or teachers, czy for education or training lub for open source projects, można ubiegać się o wolnej licencji.

0

Może to jest już znane, ale obecnie możemy korzystać ATOM z dodatkowych pakietów języka kucharz, linter-foodcritic, linter-rubinowy

https://atom.io/

1

Odpowiedź nie jest tak proste, jak z dzisiejszej Opscode nie ma "oficjalnej wtyczki".

Spędziłem kilka ostatnich wieczorów tworząc wtyczkę szefa kuchni dla Zaćmienia. W tej chwili są to bardzo nagie kości, jeśli inni ludzie są zainteresowani pracą nad tym, mógłbym dodać jeszcze więcej ... Na razie robi to, czego najbardziej potrzebuję (tworzenie nowych książek kucharskich, dodawanie receptur, atrybutów, lwrps itp.), głównie Kładę się opakowanie eclipse wokół narzędzi kucharz (kucharz, berks, kuchnia, foodcritic, etc)

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

nie mam zamiaru usunięcia tej wtyczki, chyba opscode wyjdzie z własną rękę.

Zacząłem tworzyć tę wtyczkę przy pomocy tego samouczka: https://cvalcarcel.wordpress.com/2009/07/08/writing-an-eclipse-plug-in-part-1-what-im-going-to-do/.

Teraz, po powiedziawszy to wszystko ... jeśli czujesz się komfortowo z linią poleceń, możesz zrobić większość tego, czego potrzebujesz z rzeczami, które już tam są: utwórz książkę kucharską z berkami lub szefem kuchni, e.g:

kucharz generować Cookbook my_cookbook

a następnie utworzyć nowy projekt w Eclipse rubinowy otwarty do utworzonej właśnie książkę kucharską. Po utworzeniu możesz edytować pliki ruby ​​itp. Możesz także użyć wszystkich innych funkcji szefa kuchni (np. Szefa kuchni, aby wygenerować przepis), aby pomóc Ci zacząć.

+2

Polecam Ci go udostępnić. Jeśli nie, ta odpowiedź nie pomoże w rozwiązaniu problemu. – zuazo

+0

Przepraszam, zapomniałem, dodałem go. – rleibman

+0

Proszę również dodać więcej szczegółów do swojego posta. Rozumiem, że to jest twoje repozytorium, ale jeśli dokonasz migracji lub zmiany linku, ta odpowiedź nikomu nie pomoże. – dckuehn

Powiązane problemy