В Ansible я могу использовать сценарий оболочки для предоставления списка настраиваемых хостов, в Chef я знал, что Chef Server предоставляет аналогичные функции .
Однако я не Я не хочу устанавливать тяжелый сервер, чтобы обеспечить только эту функцию, есть ли какое-нибудь обходное решение, чтобы я мог сделать то же самое в Chef, например, Ansible?
Ключевым моментом, который предоставляет сервер Chef по сравнению с Chef Solo, является возможность поиска, которая может находить серверы / узлы на основе заданного запроса.
Я понимаю, что не хочу размещать свой собственный сервер Chef чтобы получить эту функциональность! Есть много движущихся частей, чтобы обеспечить это, erlang и rabbitmq и ...
К счастью chef zero , или режим --local для chef-client, как он теперь известен, поддерживает поиск и действует как собственный мини-сервер, только временный.
Он может читать из json-файлов узла / среды / ролей в правильной структуре каталогов и действовать как конечная точка API, пока не завершится запуск Chef.
Кроме того, с учетом этой структуры чтобы использовать поиск в рецептах для поиска других узлов, можно использовать Knife search --local 'role: web-server AND chef_environment: production'
для вывода списка совпавших узлов, а также Knife ssh - local 'role: web-server AND chef_environment: production' 'ssh_command'
для выполнения команд на всех серверах.
Таким образом, хотя это не совсем система динамической инвентаризации в стиле ansible, вы можете многое сделать с ним.