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

Добавить задание Cron на несколько серверов

Как лучше всего добавить новое задание cron на несколько серверов одновременно или автоматизировать создание задания cron на нескольких серверах?

Я планирую использовать rysnc для отправки сценария bash на несколько серверов, но мне нужно добавить задание cron, которое будет запускать этот сценарий.

Большинство современных дистрибутивов Linux поддерживают /etc/cron.d framework, который позволит использовать модульный подход к отправке «сниппетов» cron на несколько серверов. Это специальный каталог, который каждую минуту сканируется на предмет доступных заданий. Вы можете поместить в каталог небольшие файлы cron. Это более элегантный подход, чем редактирование центрального или индивидуального crontab.

Видеть: В чем разница между /etc/cron.d и / var / spool / cron? Для получения дополнительной информации о немного другом формате, необходимом для использования этой платформы.

Я бы создал файлы jobs / cron и скопировал их на соответствующие серверы. Я думаю, что для чего-то такого масштаба Puppet или полный пакет управления конфигурацией - излишний.

Также можно рассмотреть Ansible, в нем есть модуль cron.

У Puppet есть cron-провайдер. (возможно, также CFEngine, Chef и некоторые другие варианты)

У него также есть изящный трюк, с помощью которого вы можете чередовать выполнение заданий cron, используя хэш имени хоста, например:

cron { "run-myscript":
  command => "/path/to/myscript.sh",
  minute => inline_template("<%= hostname.hash.abs % 60 %>"),
}

Если у вас более пары десятков серверов или вы думаете, что когда-нибудь вырастете до этого размера, то начало работы с управлением конфигурацией того стоит.

Для быстрого и грязного решения, кластерыш может сделать свое дело. Долгосрочным решением таких проблем было бы MCollective, Func, Ткань или Capistrano.

Я бы написал сценарий, который поместил бы в общий ресурс samba, к которому мог бы получить доступ весь мой сервер, затем я определю один и тот же cron для каждого и укажу на один и тот же сценарий!

Следует попробовать в качестве доказательства концепции, но я думаю, что он может работать с общим /var/spool/cron каталог (например, общий ресурс nfs). Вы пробовали? Я бы сказал, что это будет простой способ