vagrant 1.7.2 + puppet 4.2 provisioning not working - vagrant

Trying to spin-up a VM using vagrant and puppet 4.2. The puppent configuration in the Vagrantfile is:
config.vm.provision "puppet" do |puppet|
puppet.options = ['--verbose --debug']
puppet.environment_path = "../puppet/environments"
puppet.environment = "testenv"
end
as per Vagrant documentation (search for environments section)
After running vagrant up I get the following error message:
Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:
puppet provisioner:
* The following settings shouldn't exist: environment, environment_path
Any thoughts?

I believe puppet 4 support was coming from 1.7.3 - you should upgrade vagrant to this version or even 1.7.4
issue was https://github.com/mitchellh/vagrant/pull/5601
and vagrant changelog

Related

Using Vagrant to set up a VM with KVM/qemu without VirtualBox

I'm getting started Vagrant and want to use it with KVM/qemu (and the Virtual Machine Manager GUI), instead of installing VirtualBox. So I first installed Vagrant:
$ vagrant --version
Vagrant 1.9.1
$ vagrant box list
There are no installed boxes! Use `vagrant box add` to add some
As per these posts, I require vagrant-libvirt for it to work with KVM, so I installed that next:
$ vagrant plugin list
vagrant-libvirt (0.0.37)
vagrant-share (1.1.6, system)
Next, I to add a CentOS(7) box using vagrant box add "centos/7" and selected libvirt, when prompted. After which, I ran vagrant init and didn't encounter any errors:
$ vagrant init centos/7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
However, vagrant up seems to be erroring out, like so:
$ vagrant up
No usable default provider could be found for your system.
Vagrant relies on interactions with 3rd party systems, known as
"providers", to provide Vagrant with resources to run development
environments. Examples are VirtualBox, VMware, Hyper-V.
The easiest solution to this message is to install VirtualBox, which
is available for free on all major platforms.
If you believe you already have a provider available, make sure it
is properly installed and configured. You can see more details about
why a particular provider isn't working by forcing usage with
`vagrant up --provider=PROVIDER`, which should give you a more specific
error message for that particular provider.
Here's the provider section in the Vagrantfile
config.vm.provider :libvirt do |domain|
domain.driver = "qemu"
domain.memory = 512
domain.cpus = 1
end
I tried modifying it to:
config.vm.provider :libvirt do |domain|
domain.driver = "kvm"
domain.host = 'localhost'
domain.uri = 'qemu:///system'
domain.memory = 512
domain.cpus = 1
end
I also tried vagrant up --provider=kvm, vagrant up --provider=qemu, and vagrant up --provider=libvirt too, to no avail.
Is there any step that I've missed? Or another package/dependency that needs to be installed?
Edit: After the adding centos/7 using vagrant, it shows up when running vagrant box list.
$ vagrant box list
centos/7 (libvirt, 1611.01)
Start vagrant box with command
vagrant up --provider=kvm
Although it has been said in https://seven.centos.org/2017/08/updated-centos-vagrant-images-available-v1707-01/ that
The vagrant-libvirt plugin is only compatible with Vagrant 1.5 to 1.8
You can use either the command line option --provider=kvm or you can set the VAGRANT_DEFAULT_PROVIDER environment variable:
export VAGRANT_DEFAULT_PROVIDER=kvm # <-- may be in ~/.profile, /etc/profile, or elsewhere
vagrant up
vagrant-libvirt(0.0.40) is compatible with Vagrant 2.0.2 if you are running Ruby 2.3, at least on Linux Mint 18.3 (Ubuntu 16.04). I used vagrant from the Debian download on the vagrantUp website and installed the plugin using it without any problem.

Vagrant box_check_update error

I try to use a Vagrant environment. I have Vagrantfile and every other needs. I use Vagrant 1.4.3 version on Ubuntu 12.04.03.
After vagrant up get following errors.
vm:
* The following settings shouldn't exist: box_check_update
* The box 'ubuntu/vivid64' could not be found.
I've checked my Vagrantfile, and see config.vm.box_check_update = false.
Ubuntu/vivid64 is here: https://atlas.hashicorp.com/ubuntu/boxes/vivid64
config.vm.box_check_update and config.vm.box = "ubuntu/vivid64" are features of vagrant 1.5 (see blog announcement https://www.vagrantup.com/blog/vagrant-1-5-and-vagrant-cloud.html and https://www.vagrantup.com/blog/feature-preview-vagrant-1-5-boxes-2-0.html)
upgrade to Vagrant 1.5 (or better latest version) and it will run fine.

Error message" The fix-no-tty provisioner could not be found" when I vagrant up with VVV

I'm currently trying to create a virtual environment for wordpress development. I've installed Git Bash, ConEmu, Virtual Box, Vagrant, Vagrant Host updater, Vagrant triggers, and Varying Vagrant Vagrants. the first time I used vagrant up, I got this message:
default: Successfully added box 'ubuntu/trusty64' (v20150609.0.10) for 'virtualbox'! There are errors in the configuration of this machine. Please fix the following errors and try again:
vm: * The 'fix-no-tty' provisioner could not be found.
I don't really have any idea what this means and have had little success finding information on the internet. Does anyone know what the fix-no-tty provisioner is and how i could fix it?
I encountered the same issue today with a new clone of VVV while running Vagrant 1.6.3. The fix-no-tty provisioner was introduced on April 29. Named provisioner support was added to Vagrant in version 1.7.0. I upgraded to Vagrant 1.7.2 and was able to bring the VM up.

Chef Vagrant, Can't Find Folder

Chef is really confusing me. Can you help me understand why it's not working?
Cliff Notes
I'm using Chef-Solo (not Berkshelf or anything else)
Everything works when I set it up from scratch, I can vagrant provision
But if I reboot the HOST (My main operating system) it breaks!
It appears to be looking inside a .chef folder which I did not specify in my vagrant configuration.
I have to do a vmboxmanage box destroy ubuntu/trusty64 and redownload everything and redo vagrant up if I reboot.
Vagrant Version 1.7.2
Virtual Box Version 4.3.20r96996
Inside Vagrant SSH Error:
Note: The files are not pointing to the .chef folder, but they are here?
[2015-01-30T16:23:44+00:00] WARN: Did not find config file:
/etc/chef/solo.rb, using command line options.
[2015-01-30T16:23:50+00:00] FATAL: None of the cookbook paths set in
Chef::Config[:cookbook_path],
["/vagrant/.chef/cookbooks", "/vagrant/.chef/site-cookbooks"],
contain any cookbooks
$vagrant up and $ vagrant provision error:
==> default: Mounting shared folders...
default: /vagrant => /home/jesse/if/indieflix/vagrant
default: /home/vagrant/chef-recipes => /home/jesse/projects/if/vagrant/chef-recipes
default: /home/vagrant/chef-resources => /home/jesse/projects/if/vagrant/chef-resources
==> default: Running provisioner: chef_solo...
==> default: Detected Chef (latest) is already installed
Shared folders that Chef requires are missing on the virtual machine.
This is usually due to configuration changing after already booting the
machine. The fix is to run a `vagrant reload` so that the proper shared
folders will be prepared and mounted on the VM.
And, vagrant reload does nothing.
Vagrantfile
# ...
config.vm.synced_folder "chef-recipes", "/vagrant/chef-recipes"
config.vm.synced_folder "chef-resources", "/vagrant/chef-resources"
# ...
config.vm.provision "chef_solo" do |chef|
# Relevant to the Vagrantfile path
chef.cookbooks_path = ["chef-recipes"]
# This is just required by Chef, so it's minimal
chef.environments_path = "chef-resources/environments"
# This is the internal flag.
chef.environment = "development"
# This defines the cookbooks to run
chef.roles_path = "chef-resources/roles"
chef.add_role("development")
end
Folder Structure
chef-recipes/ (Git Submodule)
----python/
--------recipes/
------------default.rb
------------pip.rb
chef-resouces/ (Git Submodule)
----environments/
--------development.json
----roles/
--------development.json
Vagranfile
Anthony suggested in a comment I answer my question since it was answered in comments. Here it is!
Instead of using curl to install, I used omnibus which adds another step before provisioning:
$ vagrant plugin install vagrant-omnibus
Second, Chef-Solo/Vagrant has an issue with mounting files from the Host. The only workaround I have found is:
$ rm .vagrant/machines/default/virtualbox/synced_folders vagrant reload --provision
Optional: I created a bash script to make the above a little quicker:
reprovision.sh
#/bin/bash
rm .vagrant/machines/default/virtualbox/synced_folders
vagrant reload --provision
And of course chmod +x reprovision.sh and to run ./reprovision.sh

vgrant up fails with "unknown configuration section 'version'"

vagrant up
Bringing machine 'glialvid' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:
Vagrant:
* Unknown configuration section 'version'.
System environment
System: OS X Yosemite v 10.10.1
VirtualBox: 4.3.20
Vagrant: 1.6.5
Ansible: 1.8.1
Any help appreciated!
Install the following plugins:
vagrant plugin install vagrant_box_version
and
vagrant plugin install vagrant-triggers
You have to open the Virtual machine with VirtualBox and check the virtual machine settings .. try to fix the warnings or errors in the settings.
You will find the boxes in this path ~/.vagrant.d/boxes
Good luck.
I hope this could help!
Let me guess, you may need something like this in begin of Vagrantfile:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

Resources