如何通知puppet中的define

时间:2014-03-12 16:17:48

标签: puppet notify

编辑:我根据以下建议编辑此内容:

我在一个名为symfony2的模块中有这样的定义:

define symfony2::symfony2($cache = false, $root_dir = '') {
    if $cache {
        file {"${root_dir}/app/cache":
            path => "${root_dir}/app/cache",
            ensure => directory,
            purge => true,
            force => true,
        }
    }
}

然后我在我的脚本中实例化这个定义,如下所示:

symfony2::symfony2{"symfony2":
    cache => true,
    root_dir => "/home/whatever",
}

我希望它能够通知这个exec资源,但我找不到任何描述如何执行此操作的信息:

exec {"do-something-and-then-notify-the-symfony2-define":
    command => "xyz...",
    notify => symfony2::Symfony2["symfony2"],
}

通知=> Symfony2部分是我的问题。如何编写脚本以让exec通知symfony2定义?这甚至可能吗?

2 个答案:

答案 0 :(得分:3)

你应该可以这样做:

exec {"do-something-and-then-notify-the-symfony2-define":
command => "xyz...",
notify => ModuleName::Symfony2["symfony2"],
}
顺便问一下,当你尝试过你试过的东西时,你得到了什么错误?

答案 1 :(得分:3)

在您的资源参考symfony2::Symfony2["symfony2"]中,您应该将每个类型引用的第一个字母大写,因此Symfony2::Symfony2["symfony2"]

以下证明这有效:

define foo::bar() {
  notify { $title: }
}
foo::bar { 'first': }
notify { "second":
   notify => Foo::Bar['first']
}

按正确的顺序生成firstsecond