16

私はルビーとシェフが初めてです。私はクックブックを開発し、それらをコミットし、それらをChefサーバーにアップロードしてから、役割を変更してChefクライアントにデプロイし、その後クライアントで「chef-client」を実行しました。このプロセスは遅いです。

IDE (私の場合は Eclipse) を使用してクックブックを開発し、デバッグ (ブレークポイントの設定、変数の監視など) を行い、Chef Server にアップロードしてから Chef-Client でプルダウンすることなく実行するにはどうすればよいですか走る?

  • 「動的言語ツールキット - Ruby 開発ツール 3.0.0.v20110424-7Z--E_EkMYXO4k101442」プラグインで Eclipse 3.7 Indigo を使用しています。
  • 10.x Chef コードラインを使用して Opscode Chef クックブックを開発しています
  • RHEL/Centos 5サーバーで実行するクックブックを開発するUbuntu 10.10システムに取り組んでいます
  • 独自の Chef Server (オープンソース) を実行しています
4

7 に答える 7

4

私もこのようなツールを探していました。

シェフがそれを行うことを示すこれを見つけました。

http://stevendanna.github.com/blog/2012/01/28/shef-debugging-tips-1/

于 2012-02-09T16:43:35.070 に答える
3

Eclipseは、ChefCookbooksのシンプルなエディターとして使用できます。IDEのサポートとデバッグはありませんが、私のような一部の人々はとにかくそれを好むかもしれません。

EclipseでRubyエディターを使用する場合、.rb Rubyファイルの構文が強調表示される可能性がありますが、私はまだこれを試していません。

次の内部に.projectファイルを追加することで、任意のフォルダーをEclipseプロジェクト(たとえば、chef-repoまたは特定のcookcook)にすることができます。

<?xml version = "1.0" encoding = "UTF-8"?>
<projectDescription>
    <name> PROJECT_NAME </ name>
    <コメント></コメント>
    <プロジェクト>
    </プロジェクト>
    <buildSpec>
    </ buildSpec>
    <自然>
    </ natures>
</ projectDescription>

次に、Eclipseで[ファイル]->[インポート]->[一般]->[既存のプロジェクトをワークスペースに]を選択し、.projectファイルを追加したフォルダーを選択します。

于 2013-02-06T20:15:47.700 に答える
1

答えはそれほど単純ではありません。現在、Opscode には「公式プラグイン」がありません。

ここ数晩、Eclipse 用のシェフ プラグインの作成に費やしました。他の人がそれに取り組むことに興味を示したら、さらに追加するかもしれません...今のところ、必要なことのほとんどを実行します(新しいクックブックの作成、レシピ、属性、lwrpsの追加など)、ほとんどの場合、シェフのツール (シェフ、バーク、キッチン、料理評論家など) の周りに eclipse ラッパーを配置しています。

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/ .

さて、以上のことをすべて言いました... コマンドラインに慣れていれば、必要なことのほとんどを既存のもので行うことができます: berks またはchef のいずれかでクックブックを作成します。

シェフがクックブックを生成 my_cookbook

次に、作成したクックブックに対して開かれた Eclipse で新しい ruby​​ プロジェクトを作成します。作成したら、ruby ファイルなどを編集できます。また、他のすべてのシェフ機能 (例: シェフがレシピを生成する) も使用して、作業を開始することができます。

于 2016-10-11T21:01:28.590 に答える
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']

debug に設定log_levelすると、ランナーでサイクリングするときにかなり役立ちます。

于 2011-10-18T02:18:26.877 に答える