AWS OpsWorks を使用してアプリケーションを正常にデプロイしました。現在、bash 環境変数を設定できるカスタム Chef Cookbook を実装しようとしています。OpsWorks でクックブックを更新する Git リポジトリをセットアップしました。私は開発ボックスでknifeコマンドを使用してクックブックを生成しました。これは、実際にはrecipes/default.rb
数行のコードを含むファイルを含むディレクトリ構造にすぎません。
次のようなことをしようとすると、エラーが発生し続けるようです
node[:deploy].each do |application, deploy|
deploy = node[:deploy][application]
command "ls -la"
end
(注:ls -laはテスト用です。これにより環境変数が設定されないことがわかっています)
次のエラーが表示されます。ERROR: Caught exception during execution of custom recipe: xyz-enviroment: NoMethodError - undefined method command' for #<Chef::Recipe:0x7feb59200c00> - /opt/aws/opsworks/releases/20130328224322_109/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/mixin/recipe_definition_dsl_core.rb:56:in method_missing
また、次のようなことを試してみると
execute "setting up the enviroment" do
# TODO: Add code that does something here
end
次のエラーが表示されます。
execute[setting up the enviroment] (/opt/aws/opsworks/current/site-cookbooks/xyz-enviroment/recipes/default.rb:18:in `from_file') had an error:
No such file or directory - setting up the enviroment
私はChefを初めて使用するので、単純に間違っていることがあると確信しています。それを理解できていません。助けてくれてありがとう。