流浪木偶供应失败。错误消息:“`puppet`二进制文件似乎不在guest虚拟机的PATH中......”

时间:2018-02-21 02:40:54

标签: vagrant puppet ubuntu-16.04 vagrantfile

使用ubuntu / xenial64失败的木偶配置失败。

错误讯息:

  

这可能是因为PATH没有正确设置或者Puppet   未在此guest虚拟机上安装。 Puppet配置无法继续   没有正确安装Puppet。

Vagrantfile: 注意:以下设置适用于ubuntu / trusty64

# -*- 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

Vagrant运行目录结构:

vagrant_devenv (master)*$ tree -L 2
.
├── README.rst
├── Vagrantfile
├── installpuppet.sh
├── puppet
│   ├── manifests
│   └── modules
├── requirements.txt
└── ubuntu-xenial-16.04-cloudimg-console.log

可选

仅供参考,如果需要的话。我使用old git repo并为每个项目进行本地更改。它没有为xenial64更新,但木偶包是相同的。但你可以找到我一般在那里使用的木偶清单和模块

2 个答案:

答案 0 :(得分:1)

问题是由于在ubuntu / xenial64中找不到puppet。因此包括在木偶供应之前安装木偶代理的步骤。

我更改了Vagrantfile,并在puppet提供步骤之前安装了puppet-agent。

  

config.vm.provision:“shell”,路径:“installpuppet.sh”

更新的Vagrantfile

# -*- 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 :"shell", path: "installpuppet.sh"
  config.vm.provision :puppet do |puppet|
      puppet.manifests_path = "puppet/manifests"
      puppet.module_path = "puppet/modules"
  end

end

installpuppet.sh 内容:

apt update
apt install -y puppet

然后执行通常的 'vagrant up'

这对我有用!希望能帮助到你。如果有更好的解决方案,请告诉我。

答案 1 :(得分:0)

或者您可以在config.vm.provision之前尝试以下方法:

web_config.vm.provision "shell", inline: "sudo apt-get update && sudo apt-get install -y puppet"

只需在运行前安装木偶即可。

完整样本:

Vagrant.configure("2") do |config|
      config.vm.box = "hashicorp/precise32"
      config.vm.define :web do |web_config|

      web_config.vm.provision "shell", inline: "sudo apt-get update && sudo apt-get install -y puppet"
      web_config.vm.provision "puppet" do |puppet|
            puppet.manifests_path = "puppet/manifests"
            puppet.module_path = "puppet/modules"
      end
  end
end