2011-10-17 27 views
13

Tôi mới đến ruby ​​và Chef. Tôi đã phát triển sách dạy nấu ăn, cam kết, tải chúng lên Chef Server, sau đó triển khai chúng cho một khách hàng đầu bếp với một thay đổi vai trò theo sau là một "đầu bếp-khách hàng" chạy trên máy khách. Quá trình này diễn ra chậm.Làm cách nào để phát triển và gỡ lỗi sách dạy nấu ăn và công thức nấu ăn trong một IDE (như Eclipse)?

Làm cách nào để sử dụng IDE (Eclipse trong trường hợp của tôi), phát triển sách dạy nấu ăn và có thể gỡ lỗi (đặt điểm ngắt, xem biến vv) và chạy chúng mà không tải chúng lên Chef Server và sau đó kéo chúng xuống một đầu bếp-khách hàng chạy?

  • Tôi đang sử dụng Eclipse 3.7 Indigo với "Dynamic Ngôn ngữ Toolkit - Phát triển của Ruby cụ 3.0.0.v20110424-7Z - E_EkMYXO4k101442" plugin
  • Tôi đang phát triển sách dạy nấu ăn Opscode Chef với 10.x Chef codeline
  • tôi đang làm việc trên một hệ thống Ubuntu 10.10 phát triển sách dạy nấu ăn để được chạy trên RHEL/CentOS 5 máy chủ
  • Chúng tôi chạy riêng của chúng tôi Chef server (mã nguồn mở)

Trả lời

0

tôi có xu hướng sử dụng chef-solo trên mục tiêu máy ảo. Tôi sẽ kiểm tra sách dạy nấu ăn repo của tôi và lặp cục bộ với một solo.rb templated:

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'] 

Thiết log_level để debug giúp khá một chút khi đi xe đạp với Á hậu.

+0

Có cách nào để đặt điểm ngắt và xem biến sau khi tạm dừng thực hiện theo cách này không? Có lẽ một số cách để cho phép gỡ lỗi ruby ​​bên ngoài của một IDE nhưng trong một đầu bếp-solo chạy? –

+1

Để khám phá và phát triển ban đầu, bạn có thể muốn xem [shef] (http://wiki.opscode.com/display/chef/Shef), REPL Opscode. Nó chỉ là một phiên họp irb cụ để bạn có thể làm bất cứ điều gì bạn muốn với thời gian chạy ở đó. – jodell

+1

đầu bếp-solo là tốt. nó chỉ thiếu tính năng như tìm kiếm đầu bếp được sử dụng rộng rãi trong cấu hình nhiều nút. Tôi sẽ nói [Berkshelf] (https://github.com/RiotGames/berkshelf) và [vagrant] (http://www.vagrantup.com/) sẽ là tốt để kiểm tra hành vi của sách dạy nấu ăn. Nếu bạn chỉ muốn kiểm tra sự tương tác của công thức nấu ăn và thuộc tính của bạn, [chefspec] (https://github.com/acrmp/chefspec) sẽ là tốt mà có thể cung cấp đơn vị kiểm tra như báo cáo thử nghiệm. – shawnzhu

3

Bạn có thể sử dụng Eclipse như một trình soạn thảo đơn giản cho Chef sách dạy nấu ăn. Bạn sẽ không có bất kỳ hỗ trợ IDE và gỡ lỗi nhưng một số người như tôi có thể thích nó anyway.

Nếu bạn sử dụng Trình biên tập Ruby trên Eclipse, bạn có thể nhận được tô sáng cú pháp cho các tệp .rb Ruby nhưng tôi chưa thử.

Bạn có thể thực hiện bất kỳ thư mục một dự án Eclipse (ví dụ các đầu bếp-repo HOẶC cookcook cụ thể) bằng cách thêm một tập tin .project với bên:

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

Sau đó, trong Eclipse chọn File -> Import -> Chung -> Các dự án hiện có vào không gian làm việc và chọn thư mục mà bạn đã thêm tệp .project.

0

Đã làm một số công việc trên Kepler và thấy rằng:

  • Nhập Chef là một dự án ruby ​​thường thất bại vì các nhà nhập khẩu dường như không thể nhận ra cấu trúc đầu bếp cụ thể như "sách dạy nấu ăn", vv như địa điểm cho nguồn .Tất cả những gì bạn thấy là thư viện thông dịch ruby ​​
  • Bắt buộc nhập khẩu ruby ​​để xem các thư mục dưới dạng nguồn bằng tay (khai báo thư mục nguồn) cũng không thành công do mã trong thư mục và bất kỳ thư mục con nào không hiển thị
  • Nhập làm dự án chung hoạt động dưới dạng hiển thị tất cả cấu trúc dựa trên đầu bếp và mã của chúng, nhưng mã không được nhận dạng là mã ruby ​​và không có khả năng liên quan đến cú pháp
  • Nhập làm dự án chung, sau đó thêm ruby ​​buildspec và ruby ​​nature không hoạt động. Tất cả các tệp đều hiển thị và chỉnh sửa bằng trình chỉnh sửa ruby ​​có sẵn với đánh dấu cú pháp.

Nói tóm lại, thêm này:

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

tôi nghi ngờ có bất kỳ gỡ lỗi, vv - không mục tiêu của tôi, như tôi chạy trên Linux, nhưng ít nhất chúng ta có một trình soạn thảo tốt và hội nhập git!

Vì sự an toàn, cũng đã sao chép tệp .buildpath đến vị trí dự án ... không chắc chắn cần thiết của nó. Nội dung chung chung là:

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

Đối với Công cụ phát triển Eclipse Ruby, không có hỗ trợ cho các sách dạy nấu ăn đầu bếp như năm 2015 tháng năm 13, tuy nhiên có thay thế độc quyền nếu bạn muốn.

RubyMine 7 IDEsupports Chef với điều hướng tự động hoàn chỉnh và định nghĩa cho tài nguyên đầu bếp chuẩn và thuộc tính của chúng. Ruby Mine dựa trên Intellij IDEA.

Thay vì RubyMine, tính năng này làm việc với Intellij IDEA nếu bạn cài đặt Chef integration plugin trên đầu trang của ruby plugin

If you are student or teachers, hoặc là for education or training, hoặc for open source projects, bạn có thể nộp đơn xin giấy phép tự do.

0

Có thể nó đã được biết đến nhưng hiện tại chúng tôi có thể sử dụng ATOM với gói thêm ngôn ngữ đầu bếp, Linter-foodcritic, Linter-ruby

https://atom.io/

1

Câu trả lời là không đơn giản như vậy, tính đến nay Opscode không có "plugin chính thức".

Tôi đã dành một vài tối qua để tạo một plugin đầu bếp cho nhật thực. Bây giờ nó làm hầu hết những gì tôi cần (tạo ra sách dạy nấu ăn mới, thêm công thức nấu ăn, thuộc tính, lwrps, vv), chủ yếu là tôi đặt một wrapper nhật thực xung quanh các công cụ đầu bếp (bếp, Berks, nhà bếp, foodcritic, vv)

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

tôi không có ý định loại bỏ plugin này, trừ khi Opscode đi lên với riêng của họ.

Tôi đã bắt đầu tạo plugin này với trợ giúp tuyệt vời từ hướng dẫn này: https://cvalcarcel.wordpress.com/2009/07/08/writing-an-eclipse-plug-in-part-1-what-im-going-to-do/.

Bây giờ, đã nói tất cả điều này ... nếu bạn cảm thấy thoải mái với dòng lệnh, bạn có thể làm hầu hết những gì bạn cần với những thứ đã có ở đó: tạo một sách dạy nấu ăn với một trong hai đầu bếp hoặc đầu bếp, e.g:

đầu bếp tạo ra sách dạy nấu ăn my_cookbook

Và sau đó tạo ra một dự án ruby ​​mới trong nhật thực mở ra cho các sách dạy nấu ăn mà bạn vừa tạo. Sau khi được tạo, bạn có thể chỉnh sửa tệp ruby, v.v. Bạn cũng có thể sử dụng tất cả các tính năng đầu bếp khác (ví dụ: công thức nấu ăn đầu bếp) để giúp bạn bắt đầu.

+2

Tôi khuyên bạn nên chia sẻ nó. Nếu không, câu trả lời này không giúp được gì. – zuazo

+0

Xin lỗi, tôi quên, tôi đã thêm nó. – rleibman

+0

Vui lòng thêm các chi tiết khác vào bài đăng của bạn. Tôi hiểu rằng đây là repo của bạn, nhưng nếu bạn di chuyển hoặc liên kết thay đổi, câu trả lời này sẽ không giúp được bất kỳ ai. – dckuehn

Các vấn đề liên quan