我想开始一个小项目来学习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
清单
这是我的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
上答案 0 :(得分:4)
你的框的latest version支持puppet 4.x,而manifest_dir
在puppet 4.x中被弃用
您也可以从vagrant doc
阅读如果只指定了
environment
和environments_path
,它将进行解析 并使用environment.conf
文件中指定的清单。如果manifests_path
和manifest_file
与...一起指定 环境选择,来自环境的清单 被指定的manifest_file
覆盖。如果manifests_path
和manifest_file
指定没有环境,旧的 将使用非环境模式(将在Puppet 4 + 上失败)。
所以你需要: