Puppet Learning VM:清单和 类 (Ruby)

Puppet Learning VM: Manifests and Classes (Ruby)

我正在使用我不太熟悉的 Ruby 的 Puppets Learning VM 工作。我坚持练习 5。清单和 classes,任务 2 https://kjhenner.gitbooks.io/puppet-quest-guide/content/quests/manifests_and_classes.html

在我创建的上一个任务中 cowsay.pp :

class cowsayings::cowsay {
  package { 'cowsay':
    ensure => present,
    provider => 'gem',
  }
}

然后在任务二中,我想在另一个位置创建相同的文件,说明如下:

任务 2:

如果您要将此代码应用到您的生产基础设施,您将使用控制台的节点 classifier 来 class 验证任何需要安装 cowsay 的节点和 cowsay class。但是,当您在模块上工作时,直接应用 class 会很有用。按照惯例,这些测试清单保存在示例目录中。 (有时您可能还会在测试目录中看到这些清单。)

要实际声明 class,请在示例目录中创建一个 cowsay.pp 测试。

vimcowsayings/examples/cowsay.pp 在此清单中,使用 include 关键字声明 cowsay class。

include cowsayings::cowsay

我不确定如何创建第二个文件以及在何处添加此行。我都试过了:

class cowsayings::coway {
  include cowsayings::cowsay
  package { 'cowsay':
    ensure   => present,
    provider => 'gem',
  }
}

class cowsayings{
  include cowsayings::cowsay
}

虽然它似乎没有工作,当我 运行 它时,它没有在任务 3 中正确安装 cowsay(在上面的 link 我发布的

示例目录中的清单只需要带有 "include cowsayings::cowsay" 的那一行。

木偶必须完成两项任务,"defining" classes 和 "declaring" 它们。 cowsayings/manifests/cowsay.pp 包含定义,但您需要实际声明 class 才能使某些事情发生。

这就是 puppet apply cowsayings/examples/cowsay.pp 所做的,它声明了 class。