我有一个使用数组的puppet清单来定义APT要安装的一些必需的包。我还有一些资源链接来指定依赖项(我不想使用'requires'或'before',因为它使代码难以阅读。问题出在链接行,数组扩展并中断链接。我已经按照Puppet Syntax: how to include an array of objects into an ordering -> chain?这里的自定义函数解决方法进行了操作,但是定义一个函数似乎有些过分。
$my_deps = ["autoconf", "automake1.9", "autotools-dev", "binutils"]
package { $my_deps:
ensure => installed,
}
exec {'c_update_apt':
command => '/usr/bin/apt-get update',
path => '/usr/bin/',
}
Exec['c_update_apt'] -> Package[ $my_deps ]
这个错误说'Package [autoconf] Package [automake1.9] ....不匹配'。任何建议最受赞赏。
答案 0 :(得分:1)
您可以使用'< | |>”集合语法,以确保在安装任何软件包之前执行Exec块,而不仅仅是列表中的4。
Exec['c_update_apt'] -> Package <| |>
请参阅http://docs.puppetlabs.com/guides/language_guide.html#chaining-resources部分的底部。