我有一个带有exec
资源和create_resources
功能的puppet文件。我希望在create_resources
资源之后立即执行exec
。我该怎么做?
与引用File['name']
类似,我使用Create_Resources[....]
尝试了notify
,但它无效。
notify => Create_Resources[domain_ip_map, $data, $baseconfigdir].
init.pp
exec { 'purge-config-files':
before => [File["${config_file_service}"], File["${config_file_host}"]],
command => "/bin/rm -f ${baseconfigdir}/*",
#notify => Create_Resources[domain_ip_map, $data, $baseconfigdir],
}
create_resources(domain_ip_map, $data)
答案 0 :(得分:1)
对于依赖项元参数require
,before
,subscribe
和notify
,属性必须是资源类型。指定notify => Create_Resources[domain_ip_map, $data, $baseconfigdir],
表示您尝试将create_resources
函数的输出指定为资源。对于该参数,这不是一个可接受的类型。
有两种不同的方法可以解决这个问题。您可以添加notify
或subscribe
。
使用subscribe
,您需要添加:
subscribe => Exec['purge-config-files'],
包含$data
资源的domain_ip_map
哈希所需的任何位置'参数和属性。
使用notify,您需要组装如下所示的资源标题数组(假设使用stdlib
):
$domain_ip_map_titles = keys($data)
然后将其放在您的exec
资源中,而不是像这样:
exec { 'purge-config-files':
before => [File["${config_file_service}"], File["${config_file_host}"]],
command => "/bin/rm -f ${baseconfigdir}/*",
notify => Domain_ip_map[$domain_ip_map_titles],
}
create_resources(domain_ip_map, $data)
其中任何一个都适用于您的情况。