2015-02-18 2 views
0

Добавляя кучу свежих хостов к существующей роли, я хотел запустить chef-client только на новых хостах.Есть ли способ запустить нож ssh на хостах, предоставленных в файле?

Есть ли способ сделать нож ssh и предоставить список хостов в локальном файле? Потому что, если я ссылаюсь на роль, она будет работать на всех (новых + существующих) хостах.

+0

Если ваши рецепты идемпотентны, то почему вас это волнует. Если они не являются идемпотентными, то почему они не такие? –

ответ

1

Как упоминалось в @Tejay, ваши рецепты должны быть идемпотентными, поэтому вам не нужно беспокоиться о том, что шеф-повар «ненужных» работает на некоторых узлах.

Soulution запустить SSH нож SSH на точный список сервера, чтобы сделать search query, который соответствует всем вашим узлам, как:

knife ssh 'name:server01 OR name:server02 OR ..' 

Или использовать manual-list флаг (проверьте knife ssh doc)

-m, --manual-list 
Use to define a search query as a space-separated list of servers. 
If there is more than one item in the list, put quotes around the 
entire list. For example: --manual-list "server01 server 02 server 03 .." 
0

У вас может быть файл, например. server.txt, который содержит список сервера

ваша команда должна выглядеть следующим образом

knife ssh -m "$(cat servers.txt)" "chef-client" -P 

, который должен петля файл и выполнить шеф-клиента в каждом узле.

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