title: Vagrant puppet provision failure. Error msg: "The `puppet` binary appears not to be in the PATH of the guest. ... "
body: <h1>Vagrant puppet provision failure with ubuntu/xenial64.</h1>
  
  <p><strong>Error message:</strong></p>
  
  <blockquote>
    <p>This could be because the PATH is not properly setup or perhaps Puppet
    is not installed on this guest. Puppet provisioning can not continue
    without Puppet properly installed.</p>
  </blockquote>
  
  <hr>
  
  <p><strong>Vagrantfile:</strong>
  <strong>Note: The below setup worked fine with ubuntu/trusty64</strong></p>
  
  <pre><code># -*- mode: ruby -*-
  # vi: set ft=ruby :
  Vagrant.configure(2) do |config|
    config.vm.box = "ubuntu/xenial64"
    config.vm.hostname = "elasticsearch-learn"
    config.vm.box_url = "init"
  
    config.vm.network "forwarded_port", guest: 9200, host: 9200
    config.vm.network "forwarded_port", guest: 5601, host: 5601
  
    config.vm.provider "virtualbox" do |vb|
        vb.memory = "1024"
    end
  
    config.vm.provision :puppet do |puppet|
        puppet.manifests_path = "puppet/manifests"
        puppet.module_path = "puppet/modules"
    end
  
  end
  </code></pre>
  
  <p><strong>Vagrant running directory structure:</strong></p>
  
  <pre><code>vagrant_devenv (master)*$ tree -L 2
  .
  ├── README.rst
  ├── Vagrantfile
  ├── installpuppet.sh
  ├── puppet
  │   ├── manifests
  │   └── modules
  ├── requirements.txt
  └── ubuntu-xenial-16.04-cloudimg-console.log
  </code></pre>
  
  <p><strong>Optional:</strong></p>
  
  <p><em>Just for reference, if needed. I use my <a href="https://github.com/arjun911code/vagrant_devenv" rel="nofollow noreferrer">old git repo</a> and make local changes for each project. Its not updated for xenial64 but the puppet packages are same. But you can find the puppet manifests and modules I generally use there</em> </p>