команда ножа шеф-повара, чтобы показать все атрибуты

Я пытаюсь отобразить все атрибуты для всех узлов с помощью одной команды ножа. Я бы особенно хотел, чтобы атрибуты были установлены на нормальном уровне.

пожалуйста помоги


person Jeetendra Pujari    schedule 08.08.2018    source источник


Ответы (3)


knife node show $name --format json --long. Или более короткая форма knife node show $name -Fj -l. (если вам просто нужны обычные атрибуты, вы также можете использовать -m/--medium)

person coderanger    schedule 09.08.2018

Это немного сложно, зависит от того, чего вы хотите достичь.

Вы можете запустить этот запрос:

knife search node 'name:*' -F j

Это позволит вам получить все узлы и их данные в формате JSON, но было бы лучше, если бы вы могли придумать параметры для фильтрации узлов в зависимости от какого-либо атрибута. Это может быть какой-то атрибут, который вы установили, или что-то вроде role:WEB

person Chiranjib    schedule 08.08.2018
comment
Да, все данные узла будут в формате JSON, и вам придется анализировать массив узел за узлом. Вы не можете получить только атрибуты. Это, по крайней мере, извлекает вам все атрибуты для всех узлов. - person Chiranjib; 09.08.2018
comment
@ Джитендра, ты смог решить это каким-то другим способом? Если да, пожалуйста, поделитесь в качестве ответа. - person Chiranjib; 14.08.2018

Вы могли бы использовать

knife exec -E 'nodes.find("*:*") {|n| puts n.normal_attrs}'

который будет искать во всех узлах нормальные атрибуты

Вы можете заменить нормальные атрибуты на

  1. default_attrs
  2. override_attrs

и, наконец, вы можете заменить его на атрибуты, которые будут выводить все в необработанном формате.

person iLLUNiS    schedule 28.02.2019
comment
Это хорошо сработало для меня, в моем случае я хотел просто определенный набор атрибутов нормалей, выбранных из определенного корневого атрибута нормали. Я использовал: knife exec -E 'nodes.find(recipe:my_recipe) {|n| помещает #{n.name} #{n.normal_attrs.my_normal_attr_key_root}}' - person Tom Weiss; 16.07.2019