1

次の人形クラスを使用しています

class myclass{

      $foo = [{"id" => "bar", "ip" => "1.1.1.1"}, {"id" => "baz", "ip" => "2.2.2.2"}]

      map {$foo:}

     define map () { notify {$name['id']: } }

}

しかし、これは私に与えます

err: Could not retrieve catalog from remote server: Could not intern from pson: Could not convert from pson: Could not find relationship target "Change_config::Map[ip1.1.1.1idbar]"
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

この理由は何ですか?

よろしく、 マリンサ・アディカリ

4

1 に答える 1

2

配列にはハッシュが含まれています。リソース宣言構文は、文字列の配列に対してのみ機能します。

 $foo = ["bar", "baz"]

 map {$foo:}

 define map () { notify {$name: } }

各リソース タイトルでデータを渡したい場合は、

  1. ハッシュの配列ではなく、データのハッシュを構築します
  2. create_resources関数を使用する

テストされていないサンプル コード:

$foo = { 
  "bar" => { "ip" => "1.1.1.1" }, 
  "baz" => { "ip" => "2.2.2.2" },
}

create_resources('map', $foo)

define map ($ip="") { notify { "$name has ip $ip": } } 
于 2014-08-16T15:09:25.930 に答える