Управление заданиями cron
Ansible упрощает управление заданиями cron с помощью модуля cron. Если требуется запускать shell сценарий на всех серверах каждый день в 4 часа утра, добавьте задание cron следующим образом:
ansible multi -s -m cron -a "name='daily-cron-all-servers' hour=4 job='/path/to/daily-script.sh'"
Ansible подставляет * для всех значений, которые не указаны (допустимые значения — day, hour, minute, month и weekday). Можно также указать специальные значения времени, такие как reboot, yearly или monthly, используя special_time=[value]
.
Что, если мы хотим удалить задание cron? Передайте в команду имя задания cron, которое требуется удалить, и state=absent
:
ansible multi -s -m cron -a "name='daily-cron-all-servers' state=absent"
Можно также использовать Ansible для управления кастомными файлами crontab; Для этого укажите в команде расположение в файле cron с помощью: cron_file=cron_file_name
(где cron_file_name — это файл cron, расположенный в /etc/cron.d).
Ansible обозначает Ansible-managed crontab записи, добавляя комментарий на строку, расположенную над задачей, например #Ansible: daily-cron-all-servers.