Как обновить список клиентов хранилища шеф-поваров и удалить узлы, не соответствующие поисковому запросу?
У меня есть 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
пункт сумки данных. Следовательно, этот ключ необходимо повернуть.