我想开始一个小项目来学习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 中被弃用
你也可以从流浪者文档中阅读
如果只指定了
environment
和environments_path
,它将解析 并使用environment.conf
文件中指定的清单。如果manifests_path
和manifest_file
与 环境选项,来自环境的清单将是 被指定的manifest_file
覆盖。如果manifests_path
和manifest_file
指定没有环境,旧的 将使用非环境模式(在Puppet 4+上将失败)。
因此,您需要:
- 升级傀儡结构以支持傀儡 4.x(迁移到目录环境)
- 或降级您的盒子版本,以便安装 puppet 3.x