Chef - Data Bag Query
Можно ли сделать следующее при запросе пакета данных для установки атрибута узла?
У меня есть ряд элементов пакета данных, которые соответствуют атрибутам моего локального узла ['fqdn'].
Можно ли динамически вставить этот атрибут в строку запроса пакета данных, приведенный ниже пример не работает, какие-либо другие идеи?
default['test']['attribute'] = Chef::DataBagItem.load('databagname', '<%= node[:platform_version] %>')['test']['bag']['location']
1 ответ
DataBagItem.load
Метод возвращает объект базы данных. Поэтому я обычно сохраняю возвращенный объект пакета данных во временной переменной, а затем получаю нужный элемент из пакета данных, например, с помощью хэша. Например:
temp = Chef::DataBagItem.load('databagname', node.platform_version)
node.default['test']['attribute'] = temp['id']
Вы можете заменить идентификатор нужным элементом вашего пакета данных.
С другой стороны, если вы имели в виду хранить пакет данных дырок в одном атрибуте, я не пробовал и не знаю, возможно ли это.