はじめ に 私は、職場でのサーバー管理を自動化するために Chef を学んでいます。ここからchefdk 3.0をダウンロードしまし た 。今、chefを使用して最初のクックブックを作成しようとしています。
重要 私はこれを Windows 環境でテスト目的で使用しています。Windows には iptables がないため、失敗すると予想されますが、クックブックが見つからないという理由で失敗することはないと思います。Windowsクックブックを使用してみましたが、動作します。
クックブックを作成して実行することはできますが、スーパーマーケットから依存関係を参照することはできません。
私は2つの選択肢を試しました:
代替案 1
次のコマンドを使用してクックブックを作成しました
chef generate cookbook learn_chef_httpd
(このチュートリアルから)
チュートリアルを完了することができたので、別のクックブックを参照してテストしたいので、simple_iptablesを選択しました
この行を追加しました
cookbook 'simple_iptables', '~> 0.7.0'
スーパーマーケットで説明されているように、私のBerksfileに。
次に、次の行を default.rb ファイルに追加しました。
include_recipe 'simple_iptables'
# Allow HTTP, HTTPS
simple_iptables_rule "http" do
rule [ "--proto tcp --dport 80",
"--proto tcp --dport 443" ]
jump "ACCEPT"
end
そして、次を使用してクックブックを実行します。
chef-client --local-mode --runlist 'recipe[learn_chef_httpd]'
問題は、シェフがクックブックを見つけられないことです
Chef::Exceptions::CookbookNotFound
----------------------------------
Cookbook simple_iptables not found. If you're loading simple_iptables from anoth er cookbook, make sure you configure the dependency in your metadata
メタデータに追加してみました:
depends 'simple_iptables', '~> 0.7.0'
しかし、私はまだエラーが発生します:
Error Resolving Cookbooks for Run List:
Missing Cookbooks:
No such cookbook: simple_iptables
代替案 2
私はまだそれを機能させようとしているので、「バークシェルフの方法」も試してみたので、新しいクックブックを作成しました。
berks cookbook test
そして、私はこの行を追加しました
cookbook 'simple_iptables', '~> 0.7.0'
スーパーマーケットで説明されているように、私のBerksfileに。
次に、次の行を default.rb ファイルに追加しました。
include_recipe 'simple_iptables'
# Allow HTTP, HTTPS
simple_iptables_rule "http" do
rule [ "--proto tcp --dport 80",
"--proto tcp --dport 443" ]
jump "ACCEPT"
end
実行された berks インストール:
バークスのインストール
そしてそれを実行しました:
chef-client --local-mode --runlist 'recipe[test]'
同じエラーが返ってきました
Chef::Exceptions::CookbookNotFound
----------------------------------
Cookbook simple_iptables not found. If you're loading simple_iptables from anoth er cookbook, make sure you configure the dependency in your metadata
メタデータに追加してみました:
depends 'simple_iptables', '~> 0.7.0'
しかし、私はまだエラーが発生します:
Error Resolving Cookbooks for Run List:
Missing Cookbooks:
No such cookbook: simple_iptables
~/berkshelf フォルダーを見てみると、そこにクックブックがあります。
** 代替案 3 **
Amazon で CentOS 6.5 EC2 インスタンスを開始し、Ruby 2.1.3 と Chef をインストールしました。~/chef-repo/cookbooks フォルダーを作成しました
berkshelf を使用してクックブックを作成し、実行しました
bundle install
他の代替案と同様に参照/コードを追加してから
berks install
前回と同じように走りました。
私は同じ問題を抱えています。
私は何が欠けていますか?機能させるには何が必要ですか?