Berkshelfの生成するVagrantfileでのvagrant upが失敗する件について

Pocket

最近Vagrant+Berkshelf+Chef-Soloを使い始めて真っ先に躓いたのですが、日本語の情報がなくて困ったのでメモします。
まずは berks cookbookBerksfile, Vagrantfile, クックブックテンプレート一式を生成します。

$ bundle exec berks cookbook awsdev1

Berksfile, Vagrantfileをごにょごにょ編集して

# Vagrantfile
# (snip)

  config.vm.provision :chef_solo do |chef|
    chef.json = {
      :mysql => {
        :server_root_password => 'rootpass',
        :server_debian_password => 'debpass',
        :server_repl_password => 'replpass'
      }
    }

    chef.run_list = [
        "recipe[awsdev1::default]"
    ]

# (snip)

そして vagrant up

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:

SSH:
* The following settings don't exist: max_tries, timeout

vagrant up に失敗します。どうしてこうなった・・・。

VagrantとBerkshelfのバージョンを確認します。

$ vagrant -v
Vagrant 1.3.1

$ bundle exec berks -v
Berkshelf (2.0.10)

このエラーメッセージで検索すると

removed config.ssh.max_tries settings from Vargrantfile Template cause backwards incompatibility by bguse · Pull Request #856 · berkshelf/berkshelf

とあり、現状のBerkshelfはVagrant 1.3系以前のVagrantfileを吐き出すため、Vagrant 1.3系ではVagranfileのエラーになるようです。
コード上では既に修正されているようですが、バージョンが3.0.0bなので正式配布バージョンは2.0.10が最新のようなのでまだ我慢が必要なようです。

修正の仕方としては

# Vagrantfile

  config.ssh.max_tries = 40
  config.ssh.timeout   = 120

# Vagrantfile

config.vm.boot_timeout = 120

とすることです。これで vagrant up 可能となりました。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Clearing any previously set forwarded ports...
[Berkshelf] This version of the Berkshelf plugin has not been fully tested on this version of Vagrant.
[Berkshelf] You should check for a newer version of vagrant-berkshelf.
[Berkshelf] If you encounter any errors with this version, please report them at https://github.com/RiotGames/vagrant-berkshelf/issues
[Berkshelf] You can also join the discussion in #berkshelf on Freenode.
[Berkshelf] Updating Vagrant's berkshelf: '/Users/noguchiwataru/.berkshelf/default/vagrant/berkshelf-20131123-28724-12c9te-default'
[Berkshelf] Using awsdev1 (0.1.0)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] Setting hostname...
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant
[default] -- /tmp/vagrant-chef-1/chef-solo-1/cookbooks

参考サイト

投稿者紹介

株式会社ユニキャスト
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください