Vagrant with puppet, - managerstir provision错误

时间:2016-02-01 10:17:25

标签: php nginx vagrant puppet

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

当我尝试使用Puppet配置它时,VM本身工作正常。

这是我得到的错误:

==> 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.

这是我的目录树:

  • Vagrantfile

  • 清单

    • default.pp

这是我的Vagrantfile:

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,
}

我在Ubuntu 15.10,VirtualBox 5.0.14和Vagrant 1.7.4

1 个答案:

答案 0 :(得分:4)

你的框的latest version支持puppet 4.x,而manifest_dir在puppet 4.x中被弃用

您也可以从vagrant doc

阅读
  

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

所以你需要:

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