2017-06-15 5 views
0

私は浮浪者-hostmanager 1.8.6がインストールされている、と私はvagrant hostmanagerを実行すると、私は次のエラーで終わる:ゲストホストの更新時にvagrant-hostmanager(1.8.6)エラーが発生しましたか?

[vagrant-hostmanager:guest] Updating hosts file on the virtual machine puppet_server... 
sh: 1: Syntax error: "(" unexpected 

...と/etc/hostsファイルが更新されません。これを修正する方法はありますか?ここで

は私VagrantFileです:

Vagrant.configure(2) do |config| 

    config.vm.box = "blah/turnkey-lamp-14.2" 

    config.vm.provider "virtualbox" do |vb| 
     vb.cpus = 2 
     vb.gui = true 
    end 

    config.vm.boot_timeout = 10000 
    config.vm.network "private_network", type: "dhcp" 

    #config.vm.provision :hostmanager 

    config.ssh.insert_key = false 
    #config.ssh.private_key_path = "/mnt/vm_lab/vagrant_box_storage/.vagrant.d/insecure_private_key" 
    config.ssh.forward_agent = true 

    config.hostmanager.enabled = true 
    config.hostmanager.manage_guest = true 
    #config.hostmanager.manage_host = true 

    config.hostmanager.ip_resolver = proc do |vm, resolving_vm| 
     if vm.id 
     `VBoxManage guestproperty get #{vm.id} "/VirtualBox/GuestInfo/Net/1/V4/IP".split()[1]` 
     end 
    end 

    config.vm.define :puppet_server do |srv| 
     srv.vm.hostname = "puppet-server" 
     srv.vm.network :private_network, ip: '10.0.3.15' 
     srv.vm.provision "shell", inline: $puppetServerScript 
     srv.vm.synced_folder "src/puppet-server", "/etc/puppet", create: true 

    end 

    config.vm.define :bareOSdirector do |srv| 
     srv.vm.hostname = "bareOSdirector" 
     srv.vm.network :private_network, ip: '10.0.3.10' 
     srv.vm.provision "shell", inline: $puppetClientBareOSdir 
    end 

    config.vm.define :webserver do |srv| 
     srv.vm.hostname = "webserver" 
     srv.vm.network :private_network, ip: '10.0.3.8' 
     srv.vm.provision "shell", inline: $puppetClientWebserver 
    end 
end 

私はそれが自分自身をhostsファイルとは何かを持っていたと思ったので、私はそれを空にして、コマンドを再実行しましたが、それはまだそれを更新しません。

答えて

0

sh: 1: Syntax error: "(" unexpectedは、偶然にシェルコマンドにルビー分割が含まれていたため、シェルエラーとなりました。 2つの問題がありました

...

  1. 構文は、 `` `シェルやRubyの構文の間に間違った場所にあった少し間違っていました。
  2. 私は...

を間違ったカードのIPアドレスを得ていた私は、コマンドラインから取得するためのコマンドを実行してみました:

VBoxManage guestproperty get "puppet_server" "/VirtualBox/GuestInfo/Net/1/V4/IP 
Value: 172.x.x.x 

、それは間違ったIPアドレスをもたらしました...その代わりに私は試みました:

VBoxManage guestproperty get "puppet_server" "/VirtualBox/GuestInfo/Net/2/V4/IP 
Value: 10.0.3.15 

私は期待していたアドレスを得ました。

ブロック:

config.hostmanager.ip_resolver = proc do |vm, resolving_vm| 
     if vm.id 
     `VBoxManage guestproperty get #{vm.id} "/VirtualBox/GuestInfo/Net/1/V4/IP".split()[1]` 
     end 
    end 

がされている必要があります:

config.hostmanager.ip_resolver = proc do |vm, resolving_vm| 
     if vm.id 
     `VBoxManage guestproperty get #{vm.id} "/VirtualBox/GuestInfo/Net/2/V4/IP"`.split()[1] 
     end 
    end 

はその後までのすべてのマシンをもたらした後、私は再びvagrant hostmanagerを走った、そして予想通り、すべて/etc/hostsのファイルがで充填しました。

関連する問題