Запись кукольного хронабата не создана - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь добавить запись cron, используя puppet. У меня есть этот код в моем классе:

cron { 'puppet-apply':
    ensure  => present,
    command => "/usr/bin/mycommand",
    user    => root,
    hour    => '14',
    minute  => '49',
    require => File['mycommand'],
}

mycommand - другое определение в том же классе. Когда запускается puppet, исполняемый файл mycommand правильно добавляется в /usr/bin, однако я не вижу записей crontab, созданных в /etc/crontab (или где-либо еще по этому вопросу).

Чего мне здесь не хватает? Как я могу получить его для создания записи в crontab?

1 Ответ

1 голос
/ 09 ноября 2019

Ваш код работает нормально, и я подозреваю, что вы просто неправильно понимаете, как Puppet управляет вкладками cron.

Если вы используете последнюю версию Puppet, исходный код логики cron будет здесь ,Обратите внимание на фактические файлы, используемые ОС типа здесь :

CRONTAB_DIR = case Facter.value('osfamily')
              when 'Debian', 'HP-UX', 'Solaris'
                '/var/spool/cron/crontabs'
              when %r{BSD}
                '/var/cron/tabs'
              when 'Darwin'
                '/usr/lib/cron/tabs/'
              else
                '/var/spool/cron'
              end

Итак, приведенный код выглядит так:

file { 'mycommand':
  path    => "/usr/bin/mycommand",
  content => "#!/usr/bin/bash\necho hello world",
}

cron { 'puppet-apply':
  ensure  => present,
  command => "/usr/bin/mycommand",
  user    => root,
  hour    => '14',
  minute  => '49',
  require => File['mycommand'],
}

Если вы примените его как root в CentOS 7:

[root@centos-72-x64 ~]# puppet apply /tmp/apply_manifest.pp
Notice: Compiled catalog for centos-72-x64.macquarie.local in environment production in 0.05 seconds
Notice: /Stage[main]/Main/File[mycommand]/ensure: defined content as '{md5}8d9f82443e4fb78b8316c17174182d16'
Notice: /Stage[main]/Main/Cron[puppet-apply]/ensure: created
Notice: Applied catalog in 0.04 seconds

У вас будет ожидаемый crontab:

[root@centos-72-x64 ~]# crontab -l 
# HEADER: This file was autogenerated at 2019-11-09 03:55:09 +0000 by puppet.
# HEADER: While it can still be managed manually, it is definitely not recommended.
# HEADER: Note particularly that the comments starting with 'Puppet Name' should
# HEADER: not be deleted, as doing so could cause duplicate cron jobs.
# Puppet Name: puppet-apply
49 14 * * * /usr/bin/mycommand

А реальные измененные файлы находятся в /var/spool/cron:

[root@centos-72-x64 ~]# find /var/spool/cron
/var/spool/cron
/var/spool/cron/root
[root@centos-72-x64 ~]# cat /var/spool/cron/root
# HEADER: This file was autogenerated at 2019-11-09 03:55:09 +0000 by puppet.
# HEADER: While it can still be managed manually, it is definitely not recommended.
# HEADER: Note particularly that the comments starting with 'Puppet Name' should
# HEADER: not be deleted, as doing so could cause duplicate cron jobs.
# Puppet Name: puppet-apply
49 14 * * * /usr/bin/mycommand
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...