Цель
Цель состоит в том, чтобы отключить автоматический запуск 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 лет или что-то в этом роде. Но это решение по-прежнему запускает запуск конфигурации после перезапуска агента.