目标
目的是禁用每 30 分钟发生一次的自动 Puppet-agent 运行。可以更改 interval,但应该完全禁用自动 Puppet-agent 运行。
尝试一
根据本文档,应该可以通过配置以下内容来禁用自动 Puppet-agent 运行:
/etc/puppet/puppet.conf
[agent]
daemonize=false
结果是
Notice: Run of Puppet configuration client already in progress;
skipping (/var/lib/puppet/state/agent_catalog_run.lock exists)
如果以默认运行间隔 30 分钟手动运行 puppet。
尝试二
user@hostname:~$ sudo puppet agent --disable
结果是
user@hostname:~$ sudo puppet agent -t
Notice: Skipping run of Puppet configuration client;
administratively disabled (Reason: 'reason not specified');
Use 'puppet agent --enable' to re-enable.
尝试三
此文档是在谷歌搜索此问答的问题后找到的,但提供的信息没有回答问题。
“尝试一个”应该有效。如果它已经在运行,您必须自己停止它。这只是防止将来的实例守护进程。如果我遗漏了什么,请澄清为什么这不起作用。您还可以
chkconfig puppet off && service puppet stop
使用 Red Hat 及其衍生产品。您需要确保 puppet 代理未作为服务启动。类似
systemctl
, orchkconfig
are your friend here 之类的命令(例如systemctl disable puppet
orchkconfig puppet off
)。不确定大多数发行版。然后,您还应该确保代理已停止。例如
systemctl stop puppet
或service stop puppet
。Systemd 有一个快捷方式,可以用一个命令来完成这两项工作:
systems disable --now puppet
.您也可以只使用 puppet 来完成上述操作:
如果它仍然无法正常工作,
pkill puppet
最好再试一次,如果仍然无法正常工作 - 重新启动。您是否正在寻找类似以下的命令:
我不希望 daemonize 选项会影响这一点 - 我希望它可以控制程序本身是否后台运行并与终端分离。
https://puppet.com/docs/puppet/latest/configuration.html#runinterval说...
这似乎更相关(参考开始
--no-client
而不是设置本身)。当我们需要停止 puppet 进行定期更改时,我们只需停止托管节点上的服务。这显然意味着您需要能够通过其他机制调用一次性运行(我们不经常这样做,所以只需从 shell 运行)。
使用此设置
puppetd
正在运行但不进行定期更新(这是我的期望 - 我正在测试机器上尝试这个,但还没有足够的时间过去)。运行
puppet agent --test
将导致单次运行,但不会安排任何未来的运行。sudo service puppet stop
如果您正在运行 puppet 守护进程或者如果您是这样配置的,请删除 cronjob。
返回
返回
的反义词
stopped
是running
。的反义词false
是true
。;)正如我在链接问题中提到的那样,运行 puppet-agent 并禁用配置运行的一种可能性,它会
runinterval
变为非常大的值,比如 10 年或类似的时间。但是这个解决方案仍然会在代理重启后触发配置运行。