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