поиск ножа по вложенному атрибуту

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

Я пытался следовать, но это не сработало

knife search node "datadog.agent_version::5.4.3-1"

вот как я переопределяю файл узла

    "datadog": {
      "agent_version": "5.4.3-1"
    },

любое предложение по этому поводу?


person roy    schedule 27.08.2015    source источник
comment
docs.chef.io/knife_search.html#nested-fields   -  person Mark O'Connor    schedule 27.08.2015


Ответы (2)


Что-то подобное должно работать knife search node "datadog_agent_version:5.4.3-1". Эта функция полностью задокументирована.

person Dmitry Savinkov    schedule 28.08.2015
comment
это возвращает мне все узлы, потому что я также переопределяю атрибут agent_version в файле ролей. Но здесь я хочу найти узлы, для которых я установил атрибуты agent_version в файлах узлов, если они есть. - person roy; 28.08.2015
comment
поэтому вы можете использовать только шаблон "agent_version:*", если вам не нужна точная иерархическая структура. - person Dmitry Savinkov; 28.08.2015
comment
Я устал от этого узла поиска ножей agent_version:* -a Node Name, но он все еще возвращает все узлы. мне нужен только список узлов, для которых файл узла имеет переопределение - person roy; 28.08.2015
comment
Давайте сделаем шаг назад. Если вы ищете узел - он уже содержит все переопределения после начальной загрузки/схождения. в запросе выше я бы использовал только -a name. Если у вас нет результата, просто попробуйте запустить knife client list, чтобы узнать, доступна ли искомая машина. - person Dmitry Savinkov; 28.08.2015
comment
да узел доступен в knife client list. поэтому, чтобы проверить это, я переопределяю agent_version: в файле узла в одном из узлов, но такое же переопределение присутствует и в файле роли, но здесь я хочу найти этот конкретный узел, для которого переопределение установлено в файле узла. - person roy; 28.08.2015
comment
хорошо, так что это должно быть что-то вроде knife search node -a "agent_version:*" -a "override:agent_version:5.4.3-1", если атрибут agent_version находится на уровне переопределения. @Рой - person Dmitry Savinkov; 28.08.2015

Запускали ли вы chef-client после изменения атрибутов? Я считаю, что новые атрибуты появляются только после успешного запуска шеф-клиента.

person Oleksandr Slynko    schedule 28.08.2015