Назад | Перейти на главную страницу

Как отключить автоматический запуск Puppet по расписанию, который выполняется каждые 30 минут?

Цель

Цель состоит в том, чтобы отключить автоматический запуск Puppet-agent, который выполняется каждые 30 минут. Это возможно изменить интервал, но автоматический запуск Puppet-агента должен быть полностью отключен.


Попытка одна

В соответствии с эта документация должна иметься возможность отключить автоматический запуск 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.

Попытка три

Эта документация был найден после поиска в Google вопроса этого Q&A, но предоставленная информация не ответила на вопрос.

«Попытка первая» должна была сработать. Если он уже был запущен, остановите его самостоятельно. Это просто предотвращает демонизацию будущих экземпляров. Если мне что-то не хватает, поясните, почему это не сработало. Вы также можете chkconfig puppet off && service puppet stop на Red Hat и производных.

Вам необходимо убедиться, что марионеточный агент не запускается как служба. Команды вроде systemctl, или chkconfig твой друг здесь (например, systemctl disable puppet или chkconfig puppet off). Не уверен насчет большинства дистрибутивов.

Затем вы также должны убедиться, что агент остановлен. Например. systemctl stop puppet или service stop puppet.

Вы также можете просто использовать марионетку для выполнения вышеуказанного:

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

Если все еще не работает, pkill puppet на всякий случай попробуйте еще раз, если все равно не работает - перезагрузитесь.

Вам нужна такая команда:

puppet agent --disable

Я бы не ожидал, что опция daemonize повлияет на это - я бы ожидал, что это будет контролировать, будет ли сама программа работать в фоновом режиме и отключается ли от терминала.

https://docs.puppetlabs.com/references/stable/configuration.html#runinterval говорит ...

интервал выполнения

Как часто марионеточный агент применяет каталог. Обратите внимание, что интервал выполнения 0 означает «работать постоянно», а не «никогда». Если вы хотите, чтобы агент марионетки никогда не запускался, вы должны запустить его с параметром --no-client. Этот параметр может быть интервалом времени в секундах (30 или 30 с), минутах (30 м), часах (6 ч), днях (2 дня) или годах (5 лет).

что кажется более актуальным (ссылка на начало с --no-client а не сама настройка).

Когда нам нужно остановить регулярные изменения марионетки, мы просто останавливаем службу на управляемом узле. Это, очевидно, означает, что вам нужно иметь возможность запускать одноразовый запуск через какой-то другой механизм (мы делаем это не часто, поэтому просто запускаем из оболочки).

С этой установкой puppetd работает, но не выполняет регулярных обновлений (этого я ожидал - я пробую это на тестовой машине, но прошло еще мало времени).

Бег puppet agent --test вызовет единичный прогон, но не планирует никаких будущих прогонов.

sudo service puppet stop если вы запускаете марионеточный демон

Или удалите задание cron, если оно у вас настроено именно так.

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',
}

Противоположно stopped является running. Противоположно false является true. ;)

Как я уже упоминал в связанный вопрос, одна возможность запустить puppet-agent и отключить запуск конфигурации, это изменение runinterval очень большой стоимости, например, 10 лет или что-то в этом роде. Но это решение по-прежнему запускает запуск конфигурации после перезапуска агента.