如何禁用每30分钟执行一次的自动预定的Puppet运行?


8

目标

目的是禁用每30分钟发生一次的自动Puppet-agent运行。可以更改间隔,但是应该完全禁用自动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分钟运行间隔手动运行。


尝试两次

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.

尝试三

在仔细研究了此问答之后,找到了此文档,但提供的信息并未回答问题。


2
尝试一个应该起作用。如果它已经在运行,则必须自己停止它。这只是防止将来的实例守护进程。如果我缺少任何东西,请说明为什么这不起作用。您还可以chkconfig puppet off && service puppet stop使用Red Hat及其衍生产品。
亚伦·科普利2015年

@AaronCopley谢谢您的建议。我已禁用并停止了人偶,并将监视它是否每30分钟不再次运行。该daemonize=false设置仍位于/etc/puppet/puppet.conf中的“代理”部分中
030

@AaronCopley您可以发表评论作为答案吗?
030 2015年

Answers:


10

“尝试一个”应该起作用。如果它已经在运行,则必须自己停止它。这只是防止将来的实例守护进程。如果我缺少任何东西,请说明为什么这不起作用。您还可以chkconfig puppet off && service puppet stop使用Red Hat及其衍生产品。


可能由于木偶代理程序没有重新启动,因此第一次无法运行。明天我将验证执行提供的命令是否解决了该问题。
030 2015年

4

您需要确保木偶代理程序不是作为服务启动的。诸如systemctl或的命令chkconfig是您的朋友(例如systemctl disable puppetchkconfig puppet off)。不确定大多数发行版。

然后,您还应确保代理已停止。例如systemctl stop puppetservice stop puppet

您也可以使用puppet完成上述操作:

puppet apply <(echo "service { puppet: ensure => false, enable => false }")

如果仍然无法正常运行,请pkill puppet采取措施,如果仍然无法正常工作,请重试。


3

您是否在寻找类似的命令:

puppet agent --disable

感谢您发布答案。执行此命令将导致Error: Could not parse application options: invalid option: --disable
030

1
应该是
p

@dmourati此命令已执行。sudo puppet agent -t结果为Notice: Skipping run of Puppet configuration client; administratively disabled (Reason: 'reason not specified'); Use 'puppet agent --enable' to re-enable.
030 2015年

@TomOnTime已经尝试过。一旦执行了此命令,就无法再手动运行puppet(问题中有关Attempt2的文档)
030年

1
那就是您想要的:管理员已禁用。如果需要在管理上禁用的情况下手动运行:puppet agent --enable; agent代理-测试; 人偶代理--disable
dmourati 2015年

2

我不希望daemonize选项会对此产生影响-我希望它可以控制程序是否本身是后台的以及是否与终端分离。

https://docs.puppetlabs.com/references/stable/configuration.html#runinterval说...

运行间隔

人偶代理多久应用一次目录。请注意,运行间隔为0表示“连续运行”而不是“从不运行”。如果您希望木偶代理永远不运行,则应使用--no-client选项启动它。此设置的时间间隔可以是秒(30或30s),分钟(30m),小时(6h),天(2d)或年(5y)。

似乎更相关(引用开头--no-client而不是设置本身)。

当我们需要停止对偶进行定期更改时,我们只需在受管节点上停止该服务即可。显然,这意味着您需要能够通过其他某种机制调用一次性运行(我们不经常这样做,因此仅从shell运行)。

有了这个设置,puppetd正在运行,但是没有进行定期更新(这是我的期望-我正在测试机上尝试此操作,但是还没有足够的时间过去)。

跑步puppet agent --test将导致一次跑步,但不会安排任何将来的跑步。


感谢您发布答案。这是否意味着如果有人意外跑步,例如sudo puppet agent -t计划的跑步将被重新激活?
030 2015年

不,这-t意味着no-daemonize。(除了onetimeverboseignorecacheno-usecacheonfailuredetailed-exit-codesno-splay,和show_diff。)您可以在输出中看到这个puppet agent help
亚伦·科普利2015年

1

sudo service puppet stop 如果您正在运行puppet守护程序

或删除cronjob(如果这样配置的话)。


安装Puppet代理还会导致安装cron作业吗?我尚未配置cronjob来自己运行Puppet。
030 2015年

否,默认安装不会导致创建cron作业。如果选择不使用守护服务运行Puppet,则可以自己创建cron作业
亚伦·科普利2015年

1
puppet --version

退货

5.3.3

puppet resource service puppet ensure=stopped enable=false

退货

Notice: /Service[puppet]/ensure: ensure changed 'running' to 'stopped'
service { 'puppet':
  ensure => 'stopped',
  enable => 'false',
}

相反的stoppedrunning。相反的falsetrue。;)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.