cron - Управление cron.d и crontab записями.
Описание
- Используйте этот модуль для управления записями crontab и переменных окружения. Этот модуль позволяет создавать, обновлять или удалять переменные окружения и именованные записи crontab.
- При управлении заданиями crontab: модуль включает одну строку с описанием записи crontab
"#Ansible: <name>"соответствующей переданному в модуль параметру «name», который используется последующими вызовами модулей ansible для поиска/проверки состояния. Параметр «name» должен быть уникальным, и изменение значения «name» приведет к созданию новой задачи cron (или удалению другой). - При управлении переменными окружения: строка комментария не добавляется, но модуль использует параметр «name» для поиска строки определения переменной окружения при необходимости поиска/проверки состояния.
- При использовании символов, таких как %, они должны быть должным образом экранированы.
Требования (для хоста, на котором выполняется модуль)
- cron
Параметры
| параметр | обязательно | по умолчанию | выбор | комментарии |
|---|---|---|---|---|
| backup | нет |
| Если задано, создает резервную копию crontab перед её изменением. Путь к резервной копии возвращается в переменной backup_file этим модулем. | |
| cron_file | нет | Если указано, используется этот файл вместо crontab отдельного пользователя. Если это относительный путь, он интерпретируется относительно /etc/cron.d. (Если это абсолютный путь, обычно это /etc/crontab). Многие дистрибутивы Linux ожидают (и некоторые требуют), что имя файла содержит только буквы, цифры, подчёркивания и дефисы. Чтобы использовать параметр cron_file, необходимо также указать параметр user. | ||
| day | нет | * | День месяца, в который должна выполняться задача (1-31, *, */2 и т. д.) псевдонимы: dom | |
| disabled (добавлено в 2.0)
| нет | Если задача должна быть отключена (скомментирована) в crontab. Действует только если state=present | ||
| env (добавлено в 2.1)
| нет | нет |
| Если задано, управляет переменной окружения crontab. Новые переменные добавляются поверх crontab. Параметры "name" и "value" — имя и значение переменной окружения. |
| hour | нет | * | Час, когда задача должна выполняться (0-23, *, */2 и т. д.) | |
| insertafter (добавлено в 2.1)
| нет | Используется с state=present и env. Если указано, переменная окружения будет вставлена после объявления указанной переменной окружения. | ||
| insertbefore (добавлено в 2.1)
| нет | Используется с state=present и env. Если указано, переменная окружения будет вставлена перед объявлением указанной переменной окружения. | ||
| job | нет | Команда для выполнения или, если env задано, значение переменной окружения. Команда не должна содержать символов перевода строки. Требуется, если state=present. псевдонимы: value | ||
| minute | нет | * | Минута, когда задача должна выполняться (0-59, *, */2 и т. д.) | |
| month | нет | * | Месяц года, в который должна выполняться задача (1-12, *, */2 и т. д.) | |
| name | нет | Описание записи crontab или, если env задано, имя переменной окружения. Требуется, если state=absent. Обратите внимание, что если name не задано и state=present, то новая запись crontab всегда будет создана, независимо от наличия других записей. | ||
| reboot | нет | нет |
| Если задача должна выполняться при перезагрузке. Этот параметр устарел. Пользователи должны использовать special_time. |
| special_time (добавлено в 1.3)
| нет |
| Псевдоним для специального времени. | |
| state | нет | present |
| Определяет, требуется ли убедиться, что задача или переменная окружения присутствуют или отсутствуют. |
| user | нет | root | Конкретный пользователь, чей crontab должен быть изменён. | |
| weekday | нет | * | День недели, в который должна выполняться задача (0-6 для воскресенья-субботы, *, и т. д.) псевдонимы: dow |
Примеры
# Ensure a job that runs at 2 and 5 exists.
# Creates an entry like "0 5,2 * * ls -alh > /dev/null"
- cron:
name: "check dirs"
minute: "0"
hour: "5,2"
job: "ls -alh > /dev/null"
# Ensure an old job is no longer present. Removes any job that is prefixed
# by "#Ansible: an old job" from the crontab
- cron:
name: "an old job"
state: absent
# Creates an entry like "@reboot /some/job.sh"
- cron:
name: "a job for reboot"
special_time: reboot
job: "/some/job.sh"
# Creates an entry like "PATH=/opt/bin" on top of crontab
- cron:
name: PATH
env: yes
value: /opt/bin
# Creates an entry like "APP_HOME=/srv/app" and insert it after PATH
# declaration
- cron:
name: APP_HOME
env: yes
value: /srv/app
insertafter: PATH
# Creates a cron file under /etc/cron.d
- cron:
name: yum autoupdate
weekday: 2
minute: 0
hour: 12
user: root
job: "YUMINTERACTIVE: 0 /usr/sbin/yum-autoupdate"
cron_file: ansible_yum-autoupdate
# Removes a cron file from under /etc/cron.d
- cron:
name: "yum autoupdate"
cron_file: ansible_yum-autoupdate
state: absent
# Removes "APP_HOME" environment variable from crontab
- cron:
name: APP_HOME
env: yes
state: absent
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантированно будет обратной совместимым.
Для получения помощи в разработке модулей, если вас это интересует, пожалуйста, ознакомьтесь со статьей Информация о сообществе и участие в разработке, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/cron_module.html