У меня есть ситуация, когда мне нужно сгенерировать массив массивов, которые объявлены в 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]]
в настоящее время вывод [i,j,k,l......e,f,g,h]
в основном в одном объединенном значении массива.
Я хочу, чтобы он был в формате массива, чтобы я мог передать это в шаблон и применить его к требуемой логике. Скажите, пожалуйста, есть ли способ добиться этого.
Вы, я считаю, обречены (в общем). В hiera_array
документация специально упоминает, что возвращаемые значения представляют собой «сплющенный массив». Далее проясняет ситуацию:
Если какое-либо из совпадающих значений является массивами, они сглаживаются и включаются в результаты.
Теперь, если ваш пример точен в отношении структуры, и каждый из ваших массивов гарантированно содержит четыре скалярных элемента, вы можете сделать несколько хаков, чтобы взять массив по четыре элемента за раз и «реконструировать» исходную структуру. Я не знаю встроенной функции для этого, но пользовательскую функцию парсера для группировки элементов в группы по четыре не составит труда написать.