Как обновить список клиентов хранилища шеф-поваров и удалить узлы, не соответствующие поисковому запросу?

У меня есть chef_vault с поисковым запросом role:myrole,

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

Чтобы проверить это, он применил роль к узлу и запустил:

knife vault update mevault item1 -S "role:myrole" --mode client

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

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

2 ответа

Решение

Итак, я думаю, что у меня есть возможное решение, но мне это не нравится.

Переключатель очистки не работает при обновлении, и хотя команда update с параметром --clean удаляет узлы, она не будет добавлять новые без жесткого кодирования запроса в команде (я просто хочу повторно выполнить запрос, для которого было настроено хранилище), поэтому этот вид делает то, что я хочу:

knife vault update vault123 item1 --mode client --clean
knife vault refresh vault123 item1 --mode client

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

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

Это лучший способ, который кто-то может предложить...

Ты должен бежать knife rotate, который обновит общий ключ и исключит все хосты, которые не соответствуют поисковому запросу:

knife vault rotate keys VAULT ITEM

Сам секрет зашифрован с использованием общего ключа, который все узлы могут расшифровать через ITEM_keys пункт сумки данных. Следовательно, этот ключ необходимо повернуть.

Другие вопросы по тегам