Кукольный Логротейт - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь создать тестовую конфигурацию для logrotate, используя puppet.Но кажется, что я что-то упустил, так как он не создает повернутый файл.Мое требование: если размер файла журнала превышает x, он должен вращать журнал.

Ниже приведен фрагмент кода марионетки.

$conf_params = {
        dateext  => true,
        compress => true,
        ifempty  => false,
        mail     => false,
        olddir   => false,
      }
      $configdir     = '/etc'
      $root_group    = 'root'
      $logrotate_bin = '/usr/sbin/logrotate'
      $base_rules = {
        'test' => {
          path         => '/root/test/logs/test.log'
          create_mode  => '0775',
          copytruncate => true,
          size         => '10M',
        },
      }
      $rule_default = {
        missingok    => true,
        create       => true,
        size         => '10M',
        create_owner => 'root',
        create_group => 'root',
}
}

1 Ответ

0 голосов
/ 28 августа 2018

как указано https://stackoverflow.com/users/5343387/matt-schuchard вы только объявили переменные и ничего не вызывали.из примера видно, что вы можете пытаться использовать модуль voxpupuli-logrotate .

в этом случае вам, вероятно, не нужно устанавливать $configdir, $root_group или $logrotate_bin, так как указанные вами значения являются значениями по умолчанию для всего, кроме FreeBSD .вы не можете переопределить base_rules и rule_default, поскольку они определены в закрытом классе.при этом вы, вероятно, не хотите изменять эти значения, а вместо этого просто установите logrotate::create_base_rules: false, если вы не хотите использовать правила по умолчанию.Наконец, создайте свои собственные правила, установив хэш logrotate::rules.

сложив это вместе, мы имеем следующее

$conf_params = {
  dateext  => true,
  compress => true,
  ifempty  => false,
  mail     => false,
  olddir   => false,
}
$rules = {
  'test' => {
    'path'         => '/root/test/logs/test.log',
    'create_mode'  => '0775',
    'copytruncate' => true,
    'size'         => '10M',
  }
}
class {'logrotate':
  config => $conf_params,
  rules  => $rules,
}

или вы можете просто

include logrotate

, затем использовать hiera

logrotate::config:
  dateext: true
  compress: true
  ifempty: false
  mail: false
  olddir: false
logrotate::rules
  test:
    path: /root/test/logs/test.log
    create_mode: '0775'
    copytruncate: true
    size: 10M
...