сервис{'хрон': гарантировать => 'работает', включить => «истина», }
Ошибка: изменение с «работает» на «остановлено» не удалось: остановка системы для cron не удалась.
Пробовали ли вы «systemctl start cron» и «systemctl status cron», чтобы увидеть, есть ли что-то в его конфигурации, что мешает ему запуститься?
Да, это правильно!
Я изменил ResourceType, и теперь он работает.
exec{'check_service':
command => '
if pgrep -x "cron" > /dev/null
then
echo "Running"
else
echo "Stopped"
sudo systemctl start cron
fi',
provider => 'shell',
logoutput => true,
}
Вы игнорируете большинство преимуществ использования Puppet, используя exec, их следует использовать только в крайнем случае. Возможно, вы захотите попробовать свой исходный код, но используя crond вместо cron.
Бросьте это
service { 'crond':
ensure => 'running',
enable => 'true',
}
В файл на сервере, давайте назовем файл crontest.pp
, затем при запуске root puppet apply crontest.pp
вы должны увидеть запуск cron.
Кроме того, если вы пытаетесь отлаживать подобные вещи, хорошей отправной точкой будет использование puppet resource
, в данном случае puppet resource service
, вы сможете увидеть список всех ваших сервисов. Просмотрите это, чтобы найти тот, который относится к cron, он дает вам код Puppet для его текущего состояния, поэтому вы можете скопировать его непосредственно в файл класса, просто игнорируйте строку provider =>
, так как уровень абстракции ресурсов Puppet позаботится об этом.
Похоже, это сообщение об ошибке относится к другому ресурсу.