解密木偶输出

时间:2011-11-14 18:24:02

标签: puppet

我对木偶很新,只是想了解输出告诉我的内容。我有一个非常简单的init.pp文件来配置shudders文件:

class sudo {
    package { sudo:
                    ensure => present,
                    }

    if $operatingsystem == "Ubuntu" {
            package { "sudo-ldap":
                                ensure => present,
                                require => Package["sudo"],
                            }
            }
    file { "/etc/sudoers":
                    owner => "root",
                    group => "wheel",
                    mode => 0440,
                    source => "puppet:///modules/sudo/sudoers",
                    require => Package["sudo"],
                }

但是每当我运行以下命令时:

sudo puppet agent --server=my-imac.local --no-daemonize --verbose --onetime --noop

我得到以下输出:

info: Caching catalog for susan-hirschs-imac.local
info: Applying configuration version '1321294018'
notice: /Stage[main]/Sudo/Package[sudo]/ensure: current_value absent, should be present (noop)
notice: Class[Sudo]: Would have triggered 'refresh' from 1 events
notice: Stage[main]: Would have triggered 'refresh' from 1 events
notice: Finished catalog run in 0.07 seconds

我有两个问题:

1)我如何解释这条路径:/Stage[main]/Sudo/Package[sudo]/ensure

2)为什么它告诉我当前的价值不存在?我在/ etc / sudoers

有一个sudoers文件

1 个答案:

答案 0 :(得分:6)

  1. 路径是从资源的位置生成的(资源是文件,包,服务等)。在你的情况下:

    • Stage[main]是此资源的默认“阶段”。 Stages允许您将资源分成块,因此阶段A中的所有内容都在阶段B之前执行(例如,在安装包之前的存储库配置等)。 “主要”阶段是默认阶段。
    • Sudo是包含您资源的类的名称。
    • Package[sudo]是您的某个资源的全名。当这样引用时,类型Package总是大写。 sudo是名称或标题。有时标题与资源的实际位置不匹配(例如,您可以将文件“foo”实际上放在“/ foo / bar”)。
    • ensure是资源的属性或属性。 Puppet通过检查资源上的每个属性并使用提供程序(特定于操作系统的代码)将其从当前值(例如“缺席”)更改为清单中的属性(“present”)来工作。

    当您嵌套语言结构(例如定义)时,路径会变得更复杂,但它们都遵循相同的模式。

  2. Puppet正在寻找一个名为sudo的软件包。可能是您有/ etc / sudoers文件,但该包未命名为sudo。

    尝试运行puppet resource package以查看Puppet在您的操作系统上可以看到的软件包(您没有提及它)。您可以添加--debug,它还会显示Puppet正在运行的命令以获取信息,这可能有助于您找出它找到的软件包管理器。