Марионетка: Кроны через Иеру?

Я пытаюсь использовать hiera для своих crons. К сожалению, это не работает с cron_core?

# common.yaml
---
my_module::cron::job::multiple:
  'my_cronjobs':
    jobs:
      # job1
      - {
          minute: 30,
          hour: 10,
          date: '*',
          month: '*',
          weekday: '*',
          user: user,
          command: '/bin/sleep 120',
          description: 'sleep for 2 min',
        }
      # job2
      - {
          minute: 0,
          hour: 11,
          date: '*',
          month: '*',
          weekday: '*',
          user: user,
          command: '/bin/sleep 60',
          description: 'sleep for 1 min',
        }

В моем классе я пробовал

class my_module(){
    # enable crons
    include cron
}

Но тогда это терпит неудачу с Evaluation Error: Error while evaluating a Function Call, Could not find class ::cron

Есть ли способ решить эту проблему с помощью puppetlabs/cron_core?


person jonny    schedule 08.03.2021    source источник


Ответы (1)


Итак, две вещи на заметку. Во-первых, вам не нужно использовать cron_core. Тип ресурса cron входит в стандартную комплектацию. Во-вторых, cron — это тип ресурса, а не класс, поэтому вы не можете include его использовать.

Если вы хотите создавать задания cron с помощью Hiera, попробуйте использовать функцию create_resources. Измените структуру вашей Hiera, чтобы она выглядела как

my_module::cron::job::multiple:
 'sleep for 2 minutes': {
          minute: 30,
          hour: 10,
          date: '*',
          month: '*',
          weekday: '*',
          user: user,
          command: '/bin/sleep 120',
          description: 'sleep for 2 min',
        }
  'sleep for 1 minute': {
          minute: 0,
          hour: 11,
          date: '*',
          month: '*',
          weekday: '*',
          user: user,
          command: '/bin/sleep 60',
          description: 'sleep for 1 min',
        }

и вы сможете добавлять ресурсы, используя

$cron_job_hash = lookup('my_module::cron::job::multiple', Hash, 'hash', {})
create_resources('cron', $cron_job_hash)
person Jon    schedule 09.03.2021