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

问题描述 投票:0回答:2

Vagrant puppet provision failure with ubuntu/xenial64.

错误信息:

这可能是因为PATH未正确设置或者此guest虚拟机上未安装Puppet。如果没有正确安装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_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更新,但木偶包是相同的。但你可以找到我一般在那里使用的木偶清单和模块

vagrant puppet ubuntu-16.04 vagrantfile
2个回答
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

然后执行通常的'流浪汉'

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


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
© www.soinside.com 2019 - 2024. All rights reserved.