Почему задания cron не были правильно установлены Ansible playbook? - PullRequest
0 голосов
/ 10 марта 2020

Я создал эту книгу для установки crontab:

- name: Set PATH to crontab
  cron:
    name: PATH
    env: yes
    user: barman
    job: /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/var/lib/barman/.local/bin:/var/lib/barman/bin:/usr/pgsql-10/bin/

- name: Automatically run backup for App1
  cron:
    name: "Run Backup for App1"
    minute: "0"
    hour: "3"
    user: barman
    job: "barman cron && barman backup app1"

- name: Automatically run backup for App2
  cron:
    name: "Run Backup for App2"
    minute: "0"
    hour: "4"
    user: barman
    job: "barman cron && barman backup app2"

Но я нашел это только в /etc/cron.d/barman файле:

# m h  dom mon dow   user     command
  * *    *   *   *   barman   [ -x /usr/bin/barman ] && /usr/bin/barman -q cron

Кажется, не правильно поставил задачу.

1 Ответ

0 голосов
/ 10 марта 2020

Q: "Я нашел это только в /etc/cron.d/barman"

A: Посмотрите на crontab пользователя barman

shell> crontab -u barman -l

Зависит от ОС, где хранятся эти файлы. Например, Ubuntu хранит файлы в /var/spool/cron/crontabs/, но FreeBSD использует /var/cron/tabs/. См. Параметр cron_file .

Используйте cronvar для управления переменными в crontabs. Например

- name: Set PATH to crontab
  cronvar:
    name: PATH
    user: barman
    value: /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/var/lib/barman/.local/bin:/var/lib/barman/bin:/usr/pgsql-10/bin/

или исправить задачу cron Set PATH to crontab. Кавычки из параметра env :

"... параметры name и value - это имя и значение переменной среды."

- name: Set PATH to crontab
  cron:
    name: PATH
    env: yes
    user: barman
    value: /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/var/lib/barman/.local/bin:/var/lib/barman/bin:/usr/pgsql-10/bin/
...