Возможны оба варианта.
Вы упомянули следующие варианты:
1)
превратить скрипт в шаблон, рецепт просто отрендерит шаблон до заданногопуть и затем зарегистрируйте cronjob
Это легко начать (никаких реальных изменений в вашем скрипте, он просто гарантирует, что он есть)
Помните, что шеф-повар запускает каждый рецепт каждый раз.... Как сказал jtimberman: «он изменяет ресурсы только в том случае, если они не соответствуют рецепту».Таким образом, ваш рецепт должен просто перезаписать новый шаблон при его изменении.
ИЛИ 2)
Разбейте скрипт на ресурсы, провайдеров и т. Д., И Chef будет запускать его каждый час.
Этот вариант больше похож на шеф-повара и, вероятно, более надежен и масштабируем - особенно если вы поставите больше инфраструктуры под управление шеф-повара.
Это будет отлично работать, если ваш шеф-клиентdaemonized или chef-solo запускается на cron.
В этом случае вы можете настроить рецепт, используя такие ресурсы, как «пользователь», «группа» и «файл» (для копирования ключей ssh).Подробности см. Здесь: http://wiki.opscode.com/display/chef/Resources#Resources-File
Тогда вам лучше всего использовать «пакет данных» (данные json) для хранения данных о пользователях и устанавливать своих пользователей на основе этого.Это именно то, что сделал opscode в этом рецепте (для вдохновения посмотрите ./recipe/sysadmins.rb): https://github.com/opscode/cookbooks/tree/master/users
Просто имейте в виду, что они используют chef-сервер (или платформу opscode).Если вы используете chef-solo, вам нужно заменить 'search (: users,' groups: sysadmin ')' на свой собственный файл с данными, найденный где-нибудь, где chef-solo может достать его (загружаемый или внутри вашего шеф-повара).-repo).