我最近开始使用Puppet,我正在努力解决的一个问题是保存"状态"。也许以下示例任务将有所帮助:
在所有这一切中,我想拯救国家。说一旦SSL任务完成,保存状态,这样当Puppet下次运行时,它知道生成了SSL并且一起跳过了这个任务。我目前正在做这个" cheesey"方式,即我正在创建"文件"表明任务已完成,在下一次运行中,我检查文件是否存在,以便我做出决定 有更优雅的方式实现这一目标吗?也许是一个自定义事实我真的很想知道其他人如何使用Puppet来存储和检索他们的任务状态。
编辑:为Alex添加更多详细信息 其中一项任务是使用服务器名称,创建的数据库实例的名称等详细信息更新内部公司数据库。此任务只需要完成一次,而不是每30分钟完成一次(30分钟是Puppet代理运行的频率)。
答案 0 :(得分:0)
如果我正确理解了问题,我认为所有"陈述"您可以使用onlyif或unless
轻松检查上述列表中要查看的内容示例:从上面列出nr1。您已经安装了apache,并且您希望下次检查它是否已安装。
exec { 'install_apache':
command => '/usr/bin/apt-get install apache2 apache2-doc apache2-utils',
refreshonly => true,
path => ['/usr/bin', '/bin', '/sbin'],
unless => 'apt-cache search apache2', }
因此,在这种情况下,您将检查unless
是否已安装apache,即如果命令apt-cache的退出状态返回0(true),则不会执行命令。
这可以用来检查是否创建了SSL,甚至是数据库查询。