Puppet Learning VM:清单和类(Ruby)

时间:2016-04-26 23:38:40

标签: virtual-machine puppet

我正在使用我不太熟悉的Ruby的Puppets Learning VM。我坚持练习5.清单和课程,任务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中,我想在另一个位置用指令创建相同的文件:

任务2:

如果您要将此代码应用于生产基础架构,则可以使用控制台的节点分类器将需要使用cowsay安装的cowsay的任何节点与您的cowsay类进行分类。但是,在处理模块时,直接应用类很有用。按照惯例,这些测试清单保存在示例目录中。 (您有时也可以在测试目录中看到这些清单。)

要实际声明该类,请在examples目录中创建一个cowsay.pp测试。

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

include cowsayings::cowsay

我不知道如何创建第二个文件以及添加此行的位置。我试过了两个:

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

class cowsayings{
  include cowsayings::cowsay
}

虽然它似乎不起作用,但当我运行它时,它没有在任务3中正确安装cowsay(在我发布的链接上面

1 个答案:

答案 0 :(得分:1)

examples目录中的清单只需要一行“include cowsayings :: cowsay”。

木偶有两个任务,“定义”类和“声明”它们。 cowsayings/manifests/cowsay.pp包含定义,但您需要实际声明该类才能使某些事情发生。

这就是puppet apply cowsayings/examples/cowsay.pp所做的,它宣告了这个类。