0

配列を使用して、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].... not matching' と言っています。どんな提案でも大歓迎です。

4

1 に答える 1

1

「<|」を使用できます |>' コレクション構文を使用して、リスト内の 4 つだけではなく、パッケージがインストール される前に Exec ブロックが実行されるようにします。

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

http://docs.puppetlabs.com/guides/language_guide.html#chaining-resourcesセクションの下部を参照してください。

于 2012-08-25T16:19:03.613 に答える