昔、下記のような投稿をしたけれど、Vagrantとchefを合わせて実行するなら、わざわざknife-soloを使う必要はない。

Windows 8 に Vagrant と chef-solo をインストールしてみた

Chefの設定をVagrantfileに書いておいて、

でchefを実行するのが非常に簡単。
別途sshやrsyncを用意する必要もない。

環境はWindows8.1。

Vagrant、VirtualBox、Ruby

まず、下記の通りにVagrant、VirtualBox、Rubyをインストールしておく。
ChocolateyでWindowsにVirtualBox, Vagrant, Rubyをインストールしてみた

vagrant-omnibusプラグインのインストール

BoxにChefがインストールされていない場合に、インストールしてくれるプラグイン。
knife-soloのprepareに相当するものか。

下記のコマンドで簡単に入る。

Berkshelfのインストール(任意)

Opscodeのレシピなど、Chefサーバーから簡単にCookbookをとってくるためのツール。

このBerkshelf、Windowsだと依存関係の問題があり、2014年6月現在、コマンド一発ではインストールできない。

※vagrant-berkshelfというプラグインもあるけれど、Berkshelf 4以降は開発が終了する様子。

Berkの実行(任意)

ChefのルートディレクトリにBerksfileという名前で、下記のように記述する。

そのあと、下記のコマンドを実行すると、自動的にCookbookをcookbooks内に取得してくれる。

Vagrantfileへの記載

omnibusプラグインを使う場合config.omnibus.chef_versionの行を足す必要がある。
そうすると、vagrant up時にVMにchefをインストールする。

Vagrantfileの例はこんな感じ。

chef.add_recipeのところは下記のようにしても動いた。
(Vagrantのドキュメントではchef.add_recipeを使っている。)

Chefの実行

この状態でvagrant upを実施し、下記のコマンドでchefを走らせられる。

Windowsでknife-soloを使おうとすると、sshとかrsyncとか面倒な問題があるので、こちらのほうがよさげ。