在Puppet资源链中使用变量

时间:2012-08-22 15:59:53

标签: resources package chaining puppet vagrant

我有一个使用数组的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] ....不匹配'。任何建议最受赞赏。

1 个答案:

答案 0 :(得分:1)

您可以使用'< | |>”集合语法,以确保在安装任何软件包之前执行Exec块,而不仅仅是列表中的4。

Exec['c_update_apt'] -> Package <| |>

请参阅http://docs.puppetlabs.com/guides/language_guide.html#chaining-resources部分的底部。