Назад | Перейти на главную страницу

Почему узлы повара сохраняют роли после их удаления?

У нас есть несколько серверов с обычным набором ролей и рецептов.

Однако мы обнаружили проблему: после того, как роль была удалена с сервера (в частности: удалена из ее списка выполнения и повторно подготовлена), последующие поиски этой роли, как с помощью ножевого поиска, так и по рецептам, по-прежнему возвращают сервер.

Это почему? При проверке узла (отображение ножевого узла) роль отсутствует в списке «Роли», поэтому результаты не имеют для меня особого смысла.

Вы проверили, что роль больше не отображается в JSON узла после повторной подготовки? Возможно, что при повторной инициализации вы переопределяете список выполнения, сохраненный сервером - возможно, с помощью /etc/chef/firstboot.json - и что этот список запусков сохраняется на сервере, даже если вы удалили его ранее.

Спустя долгое время мы обнаружили очень вводящую в заблуждение функциональность Chef, то есть поиск по всем атрибутам на любом уровне глубины, независимо от того, является ли имя «особенным».

Это означает, что если машина roles = ['smartpants'], и атрибут node[:foo][:bar][:roles] = 'fancypants', результат поиска для roles:fancypants буду включать такую ​​машину.

В некоторых случаях разумно иметь такую ​​структуру, которая, не зная этих деталей, приведет к сильному выдергиванию волос.