Назад | Перейти на главную страницу

Динамический инвентарь шеф-повара вроде Ansible?

В Ansible я могу использовать сценарий оболочки, чтобы предоставить список настраиваемых хостов, в Chef я знал, что Chef Server предоставляет аналогичные функции.

Однако я не хочу устанавливать тяжелый сервер, чтобы обеспечить только эту функцию, есть ли какое-либо обходное решение, чтобы я мог сделать то же самое в Chef, например, Ansible?

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

Я понимаю, что не хочу размещать собственный шеф-сервер, чтобы получить эту функциональность! Есть много движущихся частей, чтобы обеспечить это, erlang, rabbitmq и ...

К счастью шеф-повар, или режим chef-client --local, как он теперь известен, поддерживает поиск и действует как собственный мини-сервер, только временно.

Он может читать файлы json node / environment / role в правильной структуре каталогов и действовать как конечная точка 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, с ней можно делать много вещей.