Spec-Zone.ru › Ansible

Модуль ansible.builtin.cron — управление записями cron.d и crontab

Примечание

Этот модуль входит в состав ansible-core и включен во все установки Ansible. В большинстве случаев можно использовать краткое имя модуля cron, даже не указывая ключевое слово collections. Однако для удобства перехода к документации модуля и во избежание конфликтов с другими коллекциями, которые могут содержать модуль с таким же именем, рекомендуем использовать полное имя коллекции (FQCN) ansible.builtin.cron.

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры

Краткое описание

  • Используйте этот модуль для управления записями crontab и переменными окружения. Модуль позволяет создавать переменные окружения и именованные записи crontab, изменять их или удалять.
  • При управлении заданиями crontab модуль добавляет строку с описанием записи crontab "#Ansible: <name>", соответствующей параметру name, переданному модулю. Эта строка используется при последующих вызовах ansible/module для поиска и проверки состояния. Параметр name должен быть уникальным; изменение значения name приведет к созданию нового задания cron (или удалению другого задания).
  • При управлении переменными окружения строка комментария не добавляется, однако для поиска и проверки состояния модуль использует параметр name, чтобы найти строку с определением переменной окружения.
  • При использовании таких символов, как %, необходимо правильно экранировать их.

Требования

Следующие требования должны быть выполнены на узле, где запускается этот модуль.

  • cron (любой вариант, совместимый с «vixie cron», например cronie)

Параметры

Параметр

Комментарии

backup

логический

Если задано, перед изменением crontab создается его резервная копия. Путь к резервной копии возвращается этим модулем в переменной backup_file.

Варианты:

  • false ← (по умолчанию)
  • true

cron_file

путь

Если указан, используется этот файл вместо crontab отдельного пользователя. Предполагается, что этот файл управляется исключительно модулем. Не используйте этот параметр, если файл содержит несколько записей; НИКОГДА не используйте его для /etc/crontab.

Если указан относительный путь, он интерпретируется относительно /etc/cron.d.

Многие дистрибутивы Linux ожидают (а некоторые требуют), чтобы имя файла состояло только из букв верхнего и нижнего регистра, цифр, символов подчеркивания и дефисов.

Для использования этого параметра необходимо также указать user, если только не задано state=absent.

Необходимо указать либо этот параметр, либо name.

day

псевдонимы: dom

строка

День месяца, в который должно запускаться задание (1-31, *, */2 и так далее).

Нельзя использовать вместе с special_time.

По умолчанию: "*"

disabled

логический

Следует ли отключить задание (закомментировать его) в crontab.

Действует только при условии state=present.

Варианты:

  • false ← (по умолчанию)
  • true

env

логический

Если задано, управляет переменной окружения crontab.

Новые переменные добавляются в начало crontab.

Параметры name и value задают имя и значение переменной окружения.

Варианты:

  • false ← (по умолчанию)
  • true

hour

строка

Час, в который должно запускаться задание (0-23, *, */2 и так далее).

Нельзя использовать вместе с special_time.

По умолчанию: "*"

insertafter

строка

Используется вместе с state=present и env.

Если указан, переменная окружения будет добавлена после определения указанной переменной окружения.

insertbefore

строка

Используется вместе с state=present и env.

Если указан, переменная окружения будет добавлена перед определением указанной переменной окружения.

job

псевдонимы: value

строка

Команда для выполнения или значение переменной окружения, если задано env.

Команда не должна содержать символов переноса строки.

Обязательный параметр, если задано state=present.

minute

строка

Минута, в которую должно запускаться задание (0-59, *, */2 и так далее).

Нельзя использовать вместе с special_time.

По умолчанию: "*"

month

строка

Месяц года, в который должно запускаться задание (JAN-DEC или 1-12, *, */2 и так далее).

Нельзя использовать вместе с special_time.

По умолчанию: "*"

name

строка / обязательный

Описание записи crontab или имя переменной окружения, если задано env.

Начиная с ansible-core 2.12 этот параметр всегда является обязательным.

special_time

строка

Сокращенное обозначение специального времени.

Нельзя использовать вместе с minute, hour, day, month или weekday.

Варианты:

  • "annually"
  • "daily"
  • "hourly"
  • "monthly"
  • "reboot"
  • "weekly"
  • "yearly"

state

строка

Следует ли обеспечить наличие или отсутствие задания либо переменной окружения.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

user

строка

Пользователь, crontab которого необходимо изменить.

Если параметр не задан, по умолчанию используется текущий пользователь.

weekday

псевдонимы: dow

строка

День недели, в который должно запускаться задание (SUN-SAT или 0-6, * и так далее).

Нельзя использовать вместе с special_time.

По умолчанию: "*"

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой узел; если режим не поддерживается, действие будет пропущено.

diff_mode

Поддержка: полная

В режиме diff возвращает сведения об изменениях (или о возможных изменениях в режиме check_mode).

platform

Платформа: posix

Целевые ОС и семейства ОС, с которыми можно работать

Примечания

Примечание

  • Если у вас возникли проблемы с разрешениями cron в MacOS, обратитесь за дополнительной информацией к официальной документации MacOS.

Примеры

- name: Ensure a job that runs at 2 and 5 exists. Creates an entry like "0 5,2 * * ls -alh > /dev/null"
  ansible.builtin.cron:
    name: "check dirs"
    minute: "0"
    hour: "5,2"
    job: "ls -alh > /dev/null"

- name: 'Ensure an old job is no longer present. Removes any job that is prefixed by "#Ansible: an old job" from the crontab'
  ansible.builtin.cron:
    name: "an old job"
    state: absent

- name: Creates an entry like "@reboot /some/job.sh"
  ansible.builtin.cron:
    name: "a job for reboot"
    special_time: reboot
    job: "/some/job.sh"

- name: Creates an entry like "PATH=/opt/bin" on top of crontab
  ansible.builtin.cron:
    name: PATH
    env: yes
    job: /opt/bin

- name: Creates an entry like "APP_HOME=/srv/app" and insert it after PATH declaration
  ansible.builtin.cron:
    name: APP_HOME
    env: yes
    job: /srv/app
    insertafter: PATH

- name: Creates a cron file under /etc/cron.d
  ansible.builtin.cron:
    name: yum autoupdate
    weekday: "2"
    minute: "0"
    hour: "12"
    user: root
    job: "YUMINTERACTIVE=0 /usr/sbin/yum-autoupdate"
    cron_file: ansible_yum-autoupdate

- name: Removes a cron file from under /etc/cron.d
  ansible.builtin.cron:
    name: "yum autoupdate"
    cron_file: ansible_yum-autoupdate
    state: absent

- name: Removes "APP_HOME" environment variable from crontab
  ansible.builtin.cron:
    name: APP_HOME
    env: yes
    state: absent

Авторы

  • Dane Summers (@dsummersl)
  • Mike Grozak (@rhaido)
  • Patrick Callahan (@dirtyharrycallahan)
  • Evan Kaufman (@EvanK)
  • Luca Berruti (@lberruti)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/cron_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API