流浪者与傀儡,--manifestdir规定错误


Vagrant with puppet, --manifestdir provision error

我想开始一个小项目来学习Vagrat和puppet,所以我用Vagrant创建了一个DEbian VM。

虚拟机本身工作正常,当我尝试使用 Puppet 配置它时出现问题。

这是我得到的错误:

==> default: Running provisioner: puppet...
==> default: Running Puppet with default.pp...
==> default: stdin: is not a tty
==> default: Error: Could not parse application options: invalid option:--manifestdir
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

这是我的目录树:

  • 流浪者档案

  • 体现

    • 默认.pp

这是我的流浪者档案:

Vagrant.configure(2) do |config|
  config.vm.box = "puphpet/debian75-x64"
  config.vm.network "forwarded_port", guest: 80, host: 4527
  config.vm.provision :shell, :inline => "apt-get update --fix-missing"
  config.vm.provision "puppet" do |puppet|
    puppet.manifests_path = "manifests"
    puppet.manifest_file = "default.pp"
  end
end

这是我的木偶清单:

exec { 'apt-update':
  command => '/usr/bin/apt-get update'
}
package { 'nginx':
  require => Exec['apt-update'],
  ensure => installed,
}
package { 'php5':
  require => Exec['apt-update'],
  ensure => installed,
}
package { 'redis-server':
  require => Exec['apt-update'],
  ensure => installed,
}

Im 在 Ubuntu 15.10、VirtualBox 5.0.14 和 Vagrant 1.7.4 上

最新版本的

盒子支持 puppet 4.x,manifest_dir在 puppet 4.x 中被弃用

你也可以从流浪者文档中阅读

如果只指定了environmentenvironments_path,它将解析 并使用environment.conf文件中指定的清单。如果 manifests_pathmanifest_file与 环境选项,来自环境的清单将是 被指定的manifest_file覆盖。如果manifests_pathmanifest_file指定没有环境,旧的 将使用非环境模式(在Puppet 4+上将失败)。

因此,您需要:

  • 升级傀儡结构以支持傀儡 4.x(迁移到目录环境)
  • 或降级您的盒子版本,以便安装 puppet 3.x