tknerr / vagrant-managed-servers

Enables Vagrant to ssh into and provision managed servers
MIT License
185 stars 30 forks source link

vagrant plugin post install conflict with rackspace provider #54

Closed stephencooke closed 8 years ago

stephencooke commented 8 years ago

In the example below the managed-servers plugin is not compatible with other provisioning providers.

not sure if this is just vagrant not allowing you to specify the provider using --provider with a provision request.

My only workaround so far is to uninstall the managed-servers plugin everytime I need to provision to rackspace. Is there a better workaround available?

$ vagrant plugin install vagrant-managed-servers Installing the 'vagrant-managed-servers' plugin. This can take a few minutes... Installed the plugin 'vagrant-managed-servers (0.7.1)'!

$ vagrant plugin list vagrant-cachier (1.2.1) vagrant-host-shell (0.0.4) vagrant-hosts (2.6.1) vagrant-managed-servers (0.7.1) vagrant-rackspace (0.1.10) vagrant-share (1.1.4, system) $ vagrant provision

No host IP was given to the Vagrant core NFS helper. This is an internal error that should be reported as a bug

$ vagrant plugin uninstall vagrant-managed-servers Uninstalling the 'vagrant-managed-servers' plugin...

$vagrant provision ==> pinas01: Rsyncing folder: /Users/PLACES/projects/platforms/rs_hosting/ => /vagrant

I have just tested this out using libvirt and dont see the same issues? is this a bug with vagrant-managed-servers or rackspace. plugin?

tknerr commented 8 years ago

Hmm, that's weird. Mind sharing your whole Vagrantfile?

stephencooke commented 8 years ago

not sharing the whole file as it has about 10 hosts in the all the same as this one.

config.vm.define :GUESTNAME do |GUESTNAME| GUESTNAME.vm.hostname = "GUESTNAME..GUESTDOMAIN" GUESTNAME.vm.provider :managed do |managed, override| managed.server = "GUESTNAME..GUESTDOMAIN" override.vm.box = "tknerr/managed-server-dummy" override.ssh.username = "root" override.ssh.private_key_path = "~/.ssh/PRIVATE_id_rsa" end

GUESTNAME.vm.provision "shell", inline: "ip a | grep inet | grep eth"
GUESTNAME.vm.provision :shell do |shell|
    shell.inline = $script
end

GUESTNAME.vm.provision "puppet" do |puppet|
    puppet.hiera_config_path = "hiera.yaml"
    puppet.module_path = "modules"
    puppet.options = "--parser future"
end

end

Dont see the problem with libvirt and this plugin. i was going to the say it was a RS plugin issue.

tknerr commented 8 years ago

This is this vagrant 1.7.4, right?

And does it make a difference if you add a GUESTNAME.vm.provider :rackspace line inside the VM definition in addition to GUESTNAME.vm.provider :managed? (i.e. so that the managed provider is not the only one that is "mentioned" for that VM)

tknerr commented 8 years ago

Looks like the symptoms you are seeing (i.e. "No host IP was given to the Vagrant core NFS helper") happen with other plugins as well, eg. with vagrant-aws.

Maybe this helps as a workaround? https://github.com/mitchellh/vagrant/issues/5401#issuecomment-115240904

tknerr commented 8 years ago

Some more references to this issue from vagrant-rackspace and vagrant-google plugin here: https://github.com/mitchellh/vagrant-rackspace/issues/113 https://github.com/mitchellh/vagrant-google/issues/94

Maybe we have to use the prepare_nfs_settings action in order to fix this, as suggested here: https://github.com/mitchellh/vagrant/issues/4192#issuecomment-120047652

stephencooke commented 8 years ago

yes thanks I will give that a a try.

GUESTNAME,vm.provider :rackspace do |rs, override| override.nfs.functional = false ... Yes that has done the trick. adding this to the Rackspace Vagrantfile seems to have sorted it. thanks