2016-05-19 8 views
0

vagrant upを実行したときにいくつかのサービスをインストールするバゲントボックスを作成しようとしています。そのために迷惑メールボックスに料理ブックを自動的にダウンロードしてインストールする

、私はこれらのサービスを利用しています:

  • のOracle VirtualBoxの
  • シェフソロ・プロビジョニング
  • Berkshelf
  • ベイグラントBerkshelfプラグイン

私は調理師の依存関係を処理するためにBerkshelfを使用します。

いくつかの料理ブックで問題が発生しますが、それは単にインストールされません。 現在、シェフスーパーマーケットで見つけた料理本の0123,からnginxをインストールしようとしています。

Berksfile:

source "https://supermarket.chef.io" 
cookbook "nginx" 

Vagrantfile:

Vagrant.configure("2") do |config| 

    config.vm.box = "CentOS-6.5-minimal-0.1.1" 
    config.vm.network "private_network", ip: "192.168.33.10" 
    config.vm.hostname = "vagrant" 
    config.vm.synced_folder ".", "/var/www", :mount_options => ["dmode=777", "fmode=666"] 

    config.berkshelf.enabled = true 
    config.vm.provision :chef_solo do |chef| 
     chef.cookbooks_path = ["cookbooks"] 
     chef.add_recipe "nginx" 
    end 

end 

私は最も近いvagrant reloadの組み合わせでvagrant provisionを実行してダウンボックスをシャットとvagrant up

を実行してみましたやった問題の原因を特定することはthis stacktraceです。vagrant provisionを実行しています。

これを解決するための助けがあれば幸いです。

+0

@justMiles 'kitchen'は常勤ではなく、テストのためのものです – Derek

答えて

0

ここで重要な問題は、Hashcorpのデフォルトボックス(Starting Chef Client, version 11.8.2)に同梱されているChefバージョンを使用していることです。このバージョンは現在のnginx料理ブックを使用するには古すぎます。おそらく、シェフのベーキングバージョンが含まれていないベントボックスを使用し、その後、バージュのオムニバスサポート経由でインストールすることをお勧めします。

+0

シェフが私が使用したボックスにプレインストールされていることをお勧めしますか?また、将来的に特定の料理本を私のシェフのバージョンで使用できるかどうかを知ることができますか? – RagZ

+0

最も確かにchefがインストールされていれば、あなたのvagrantfileに 'chef.version =" 12.10.40 "'を設定すると、VMのシェフバージョンがアップグレードされます –

+0

新しいChefでは、cookbookメタデータに 'chef_version'フィールドを追加しましたそれは比較的新しいので、すべての料理本がそれをサポートしているわけではありません。通常、最良の方法は各料理本のREADMEをチェックすることです:https://supermarket.chef.io/cookbooks/compat_resourceそこには12.0+をサポートしているのがわかります。 – coderanger

関連する問題