流浪汉没有跑傀儡

时间:2014-07-14 21:24:20

标签: ubuntu vagrant puppet

我正在运行Vagrant并尝试使用Puppet配置该框。 Puppet似乎永远不会运行。当我配置它时,我看到:

$ vagrant provision
==> default: Running provisioner: puppet...
==> default: Running Puppet with default.pp...
==> default: stdin: is not a tty
==> default: notice: Finished catalog run in 0.03 seconds

我的木偶文件(默认为manifests/default.pp):

class base {
  Package { ensure => "installed" }
  package {
    "python-pip":
      ensure => "latest";
  }
}

我的流浪档案:

# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "hashicorp/precise32"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.network "private_network", ip: "192.168.33.10" 
  config.ssh.forward_agent = true                          
  config.vm.provision "puppet"   # defaults to manifests/default.pp
  config.vm.provider "virtualbox" do |vb|                               
    vb.gui = false                                                      
    vb.customize ["modifyvm", :id, "--memory", "1024"]                  
  end
end

当我尝试运行pip:

vagrant@precise32:~$ pip
The program 'pip' is currently not installed.  You can install it by typing:
sudo apt-get install python-pip

为什么pip没有安装?我的Vagrant文​​件,我的木偶文件或我的设置有问题吗?有任何想法吗?我遵循了入门步骤,这似乎正是他们所拥有的。我正在使用Vagrant 1.6.3。

1 个答案:

答案 0 :(得分:4)

看起来您的manifests/default.pp只是定义了一个类base,但它实际上从未声明过它(通过include base)。它是使其“运行”的类声明。

来自Puppet documentation on Classes

  

定义一个类使其可供以后使用。它还没有向目录添加任何资源;要做到这一点,你必须声明它(见下文)或从ENC分配。

因此,您应该只需稍后在base中致电include base即可让manifests/default.pp课程开始投放。

或者,在这个简单的场景中,你甚至不需要一个base课......你可以只有manifests/default.pp说:

Package { ensure => "installed" }
package {
  "python-pip":
    ensure => "latest";
}