每天运行一次puppet清单部分,但每小时进行一次轮询

每天运行一次puppet清单部分,但每小时进行一次轮询,puppet,Puppet,我每小时都有节点检查一个傀儡服务器 我们有一些任务需要在签入时运行,但每天只运行一次 是否有可能在傀儡清单中创建一个函数来保存上次运行时间,并且仅在上次运行时间超过24小时时才运行 更新: 我确实试过一件半成品。也就是说,将puppet代码块移动到一个单独的文件中,并让我的主puppet确保它有一个cron作业 我从另一个部门得到的投诉是,他们再也看不到puppet board上的安装错误了。此图显示旧puppet分支上的2个节点和新分支上的1个节点: 使用cron运行puppet apply

我每小时都有节点检查一个傀儡服务器

我们有一些任务需要在签入时运行,但每天只运行一次

是否有可能在傀儡清单中创建一个函数来保存上次运行时间,并且仅在上次运行时间超过24小时时才运行

更新:

我确实试过一件半成品。也就是说,将puppet代码块移动到一个单独的文件中,并让我的主puppet确保它有一个cron作业

我从另一个部门得到的投诉是,他们再也看不到puppet board上的安装错误了。此图显示旧puppet分支上的2个节点和新分支上的1个节点:


使用
cron
运行
puppet apply myFile.pp
我们不再从Puppetboard上的失败中获得反馈,因为主脚本只是确保cron作业存在:

您至少有两个选项

假设您的未指定任务由exec资源处理,您可以这样设计:Puppet每天只会认为exec不同步一次。这可以通过让执行官将日历日写入文件来实现。然后可以添加
,除非
属性:

unless => "test $(</var/tmp/last_run) == $(date +%d)"

这假设木偶真的每小时只运行一次。当然,风险在于Puppet在该小时内运行不止一次,例如,系统管理员可能会手动运行它

您至少有两种选择

假设您的未指定任务由exec资源处理,您可以这样设计:Puppet每天只会认为exec不同步一次。这可以通过让执行官将日历日写入文件来实现。然后可以添加
,除非
属性:

unless => "test $(</var/tmp/last_run) == $(date +%d)"

这假设木偶真的每小时只运行一次。当然,风险在于Puppet在该小时内运行不止一次,例如,系统管理员可能会手动运行它

感谢有趣的解决方案如果脚本返回错误,您会得到关于puppet系统的反馈吗?我用类似的方法更新了我的问题和我从另一个部门得到的投诉。也可以考虑使用<代码>计划> <代码>,而不是<代码>范围< /代码>。或者除了
范围之外
。谢谢有趣的解决方案如果脚本返回错误,您会得到关于puppet系统的反馈吗?我用类似的方法更新了我的问题和我从另一个部门得到的投诉。也可以考虑使用<代码>计划> <代码>,而不是<代码>范围< /代码>。或者在
范围之外