Puppet DSL:订单没关系?

时间:2012-06-20 20:36:36

标签: puppet

根据Puppet文档:

  

命令与声明性语言无关。

如果是这种情况,为什么这段代码有效:

class myserver {
  $package_to_install = 'libcapture-tiny-perl'
  package {
   $package_to_install: ensure => present;
  }
}

但是这段代码工作:

class myserver {
  package {
   $package_to_install: ensure => present;
  }
  $package_to_install = 'libcapture-tiny-perl'
}

如果订单很重要,那么我可以看到为什么一个有效而另一个无效,但由于顺序无关紧要,为什么它们的行为不同?

1 个答案:

答案 0 :(得分:1)

免责声明:我是Puppet开发人员之一。

因为我们的语言不是,正如我们的文档所声称的那样,实际上是声明性的。它实际上是订购的。 :(

在课堂或宣言中,评估或多或少是自上而下的。该评估的产品是目录中的资源,但不是对目录的评估。

将DSL视为一种不完全声明的方式来构建目录,这是一种资源图,在处理过程中完全是声明性的。