编辑:我根据以下建议编辑此内容:
我在一个名为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定义?这甚至可能吗?
答案 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']
}
按正确的顺序生成first
和second
。