How to disable automatic scheduled Puppet runs that occur every 30 minutes?

Aim

The aim is to disable automatic Puppet-agent runs that occur every 30 minutes. It is possible to change the interval, but the automatic Puppet-agent runs should be disabled completely.


Attempt one

According to this documentation it should be possible to disable automatic Puppet-agent runs by configuring the following:

/etc/puppet/puppet.conf

[agent]
daemonize=false

results in

Notice: Run of Puppet configuration client already in progress; 
skipping  (/var/lib/puppet/state/agent_catalog_run.lock exists)

if puppet is run manually at the default run interval of 30minutes.


Attempt two

user@hostname:~$ sudo puppet agent --disable

results in

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.

Attempt three

This documentation was found after googling the question of this Q&A, but the provided information did not answer the question.


Solution 1:

"Attempt one" should have worked. If it was already running you have to stop it yourself. This just prevents future instances from daemonizing. If I am missing something, please clarify why this didn't work. You can also chkconfig puppet off && service puppet stop on Red Hat and derivatives.

Solution 2:

You need to ensure that the puppet agent is not starting as a service. Commands like systemctl, or chkconfig are your friend here (e.g. systemctl disable puppet or chkconfig puppet off). Not sure about most distros.

Then you should also make sure that the agent is stopped. E.g. systemctl stop puppet or service stop puppet.

Systemd has a shortcut to do both with one command: systems disable --now puppet.

You can also just use puppet to accomplish the above:

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

If it still doesn't work, pkill puppet for good measure, then try again, if it still doesn't work - reboot.

Solution 3:

Are you looking for a command like:

puppet agent --disable