Каждый раз, когда мы создаем новый сервер, у меня есть сценарий bash, который задает конечному пользователю набор вопросов, чтобы помочь шеф-повару настроить настраиваемый сервер, его/ее ответ на эти вопросы нужно вставить в шеф-повара так, чтобы что я могу использовать их ответы в моем сценарии шеф-повара (например, для установки сервера «hostname» = «server1.stack.com»). При запуске chef-клиента, который я прочитал, это атрибут json, который может быть полезен, но я не уверен, как это работает в нашей среде.Шеф-повар: передающие переменные
Примечание: Мы запускаем chef-client на всех наших системах каждые 15 минут через cronjob для получения обновлений.
Psuedocode:
echo -n "What is the server name?"
read hostname
chef-client -j {'hostname' => ENV['$hostname']}
Я считаю, что вы ошибаетесь. Я просто проверил на своем сервере, что передача аргумента в -j не переопределяет run_list или среду. На самом деле, если я правильно читаю источник, он делает глубокое слияние между содержимым -j и нормальными атрибутами с сервера. https://github.com/opscode/chef/blob/cbb9ae97e2d3d90b28764fbb23cb8eab4dda4ec8/lib/chef/node.rb#L293 –
Я получаю логику в скрипте, похоже, что вы используете этот client-bootstrap.sh на целевая машина сама? – user3617841