Puppet:Crons via Hiera?

Puppet: Crons via Hiera?

我正在尝试为我的 crons 使用 hiera。不幸的是,这不适用于 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 我试过了

class my_module(){
    # enable crons
    include cron
}

但随后失败 Evaluation Error: Error while evaluating a Function Call, Could not find class ::cron

有没有办法用 puppetlabs/cron_core 解决这个问题?

有两点需要注意。首先,您不需要使用 cron_corecron 资源类型作为标准包含在内。其次,cron 是一种资源类型,而不是 class,所以你不能 include 它。

如果您想使用 Hiera 创建 cron 作业,请尝试使用 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)