Vagrant VMware Workstation Provider 設定メモ
こんな感じで使ってる。
# PROJECT_DIR/vagrant/Vagrantfile VAGRANTFILE_API_VERSION = '2' Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = 'chef/centos-6.5' config.vm.network :forwarded_port, guest: 1080, host: 1080 # MailCatcher config.vm.network :forwarded_port, guest: 3000, host: 3000 # Rails config.vm.provider :vmware_workstation do |v| v.gui = true v.vmx["memsize"] = '2048' v.vmx["numvcpus"] = '4' v.vmx["vhv.enable"] = 'True' end config.vm.provider :virtualbox do |vb| vb.customize ['modifyvm', :id, '--memory', '2048'] vb.customize ['modifyvm', :id, '--natdnsproxy1', 'off'] vb.customize ['modifyvm', :id, '--natdnshostresolver1', 'off'] vb.customize ['modifyvm', :id, '--cpus', '4'] vb.customize ['modifyvm', :id, '--ioapic', 'on'] end config.berkshelf.enabled = true config.berkshelf.berksfile_path = '../Berksfile' config.vm.provision :chef_solo do |chef| chef.log_level = :debug chef.run_list = %w(mysql::server mysql::client ruby_build rbenv::user base::default) chef.json = { 'mysql' => { 'server_root_password' => '', }, 'rbenv' => { 'user_installs' => [ { 'user' => 'vagrant', 'rubies' => [ '2.1.5' ], 'global' => '2.1.5', 'gems' => { '2.1.5' => [ { 'name' => 'bundler', 'version' => '1.7.9' } ] } } ] } } end config.omnibus.chef_version = '11.16.4' config.ssh.forward_agent = true config.vm.synced_folder '../', '/vagrant' config.vm.boot_timeout = 300 end
VMware Provider のここがよい
同期フォルダが高速
嵌まりどころ
Timeout
PS D:\uzuki05\Documents\IdeaProjects\myapp\vagrant> vagrant up Bringing machine 'default' up with 'vmware_workstation' provider... ==> default: Checking if box 'chef/centos-6.5' is up to date... ==> default: Verifying vmnet devices are healthy... Skipping Berkshelf with --no-provision ==> default: Preparing network adapters... ==> default: Starting the VMware VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 192.168.112.134:22 default: SSH username: vagrant default: SSH auth method: private key default: Warning: Connection timeout. Retrying... default: Warning: Connection timeout. Retrying... default: Warning: Connection timeout. Retrying... SocketError: getaddrinfo: �����������z�X�g���s�������B
対策
config.vm.boot_timeout = 300
タイムアウトを長めにとる。
Timeoutが発生してしまったら、しばらく待ってからhalt。 すぐやってもエラーになるが、諦めずしばらく待ってから実行するとうまくいく。
PS D:\uzuki05\Documents\IdeaProjects\myapp\vagrant> vagrant halt ==> default: Attempting graceful shutdown of VM...
手動でVMware Workstationで落としたりすると、次回 vagrant up 時に起動できなくなるなど
vagrant reload できない
できない…
対策
reload しない…