2016-07-17 1 views
0

У меня есть chef_vault с search_query role:myrole.Как обновить список клиентов хранилища шеф-повара и удалить узлы, не соответствующие поисковому запросу?

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

Чтобы проверить это применяла роль в узел и побежал:

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

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

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

ответ

1

Хорошо, поэтому я думаю, что у меня есть решение, но мне оно не нравится.

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

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

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

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

Лучше, чем кто-то может предложить ...

+0

Вашей второй команды с '--clean' будет достаточно. 'update' предназначен для обновления значений в самом хранилище или для изменения поискового запроса и списка администраторов. Если ваша цель заключается в обновлении списка клиентов, разрешенных, то используйте 'refresh' – Tensibai

+0

Clean не работал с обновлением, он отказался удалить узлы, которые больше не соответствуют запросу search_query - может быть, ошибка? – red888

+0

Just saw --clean-unknown-clients в doc, с которым вы связались, возможно, я попробую, а не просто --clean – red888

1

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

knife vault rotate keys VAULT ITEM 

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

+0

Хм, похоже, для меня это не работает. Напомним: мой узел находится в списке клиентов, я удалил его из роли и запустил на нем шеф-клиент. Я попробовал запустить «knife vault rotate keys VAULT ITEM - изменить клиент», но после этого я вижу, что узел все еще находится в списке клиентов для элемента хранилища. – red888

+0

Я также попробовал чистый коммутатор, но это тоже не сработало: 'knife vault update vault123 item1 -search 'role: merole' --mode client --clean' – red888

+0

Упс набрал это неправильно! 'обновление ножа vault123 item1 -S 'роль: merole' -mode client -clean' работает так, как должно. Теперь мой вопрос: почему команда rotate не работала? Должен ли я сделать это вместо - очистить или, возможно, запустить оба? – red888

Смежные вопросы