web-dev-qa-db-ja.com

puppetでhieraから配列の配列を作成する方法

異なる階層のpuppetのhieraで宣言されている配列の配列を生成する必要がある状況があります。

環境レベルで宣言があるとしましょう

test:
 - [a,b,c,d]
 - [e,f,g,h]

そしてcommon.yamlで私は宣言を持っています

test: 
 - [i,j,k,l]
 - [m,n,o,p]

ここで、hiera_array値を渡すと、次のように出力します。

[[i,j,k,l],[m,n,o,p],[a,b,c,d],[e,f,g,h]]

現在、出力は基本的に1つのマージされた配列値で[i,j,k,l......e,f,g,h]です。

それを配列形式の配列にして、それをテンプレートにパスして、必要なロジックに適用できるようにします。これを達成する方法があれば教えてください。

2
Arijit Ghosh

あなたは(一般的に)運命にあると私は信じています。 hiera_array documentation は、返される値が「フラット化された配列」であると具体的に述べています。それはさらに状況を明らかにします:

一致した値のいずれかが配列である場合、それらはフラット化され、結果に含まれます。

ここで、例が構造に関して正確であり、各配列に4つのスカラー要素があることが保証されている場合は、ハックを実行して、一度に4つの要素を取得し、元の構造を「再構築」できます。これを行うための組み込み関数はわかりませんが、要素を4つのグループにグループ化するカスタムパーサー関数を作成するのは難しくありません。

2
womble