我们刚刚开始在 QA 环境中使用 Puppet。一直以来,我的印象是,只有在代理节点上重新启动 puppet 或从命令行初始化时,代理才会从主节点拉目录。但是昨天,我正在编写一些 puppet 脚本,并且不时在我们的测试节点上重新启动 puppet 代理以提取新目录,但不幸的是,我不知道,其他代理也在提取测试目录(这创建他们有很多不受欢迎的变化)。没有人在其他节点上重新启动 puppet。我检查了 /var/log/message 并意识到它从第一天开始每 30 分钟从主节点拉目录,而无需重新启动 puppet。我现在有以下问题:
1)当 puppet 服务在 puppet 代理(即守护模式)上运行时,我是否正确假设它每 30 分钟从主服务器拉目录,这是预期的行为?
2)我在哪里可以控制每次拉动之间的时间间隔?
3) 有没有办法可以停止代理上的 puppet 服务,随时从 puppetmaster 推送目录?
一种方法是停止/禁用服务。通过 cron 或您喜欢的任何方法触发代理。您还可以更新 puppet.conf 并设置runinterval。cron(或其他任务调度程序)方法的优点是代理不会在后台运行。对于您想要手动触发或刷新周期较长的系统,让守护程序 24/7 运行可能没有多大意义。
是的,这是正常的,并且假设默认配置是预期的。但是有很多方法可以配置 puppet。不需要将其作为守护程序运行,也不需要使用默认间隔。
那么简单的方法就是禁用该服务和一些并行 ssh 工具来连接到所有主机并发出
puppet agent --test
. 您还可以设置mcollective或其他编排工具。有一个功能(正在被弃用,其中代理可以设置为侦听端口,并且可以远程“踢”以触发目录运行。由于大多数人不使用它,因此该功能正在被删除,并且有有几个提供此功能的替代方案,就像我提到的两个一样。