Я пытаюсь отладить проблему кеширования с помощью Puppet в RedHat 7. Мои версии указаны в конце этого вопроса.
Ниже приведен отрывок из моего site.pp
манифест. Все в порядке, и проверка Nagios установлена на foo.example.com
узел.
node 'foo.example.com' {
nagios::service {'my_database':
check_command => 'check_tcp_nrpe!3306',
service_description => 'My Database',
}
}
Теперь, если я добавлю еще nagios::service
регистрироваться site.pp
его также подхватывают,
puppet agent --noop --test
но если я удалю то же самое nagios::service
вызовите и снова запустите агент, он все равно его видит (это пробные прогоны - не понимаю, зачем он кеширует). Это происходило во многих различных сценариях в нескольких манифестах. Если я удалю puppetdb и запустил агент, puppetdb будет воссоздан заново, и на некоторое время все вернется в нормальное состояние.
Есть ли предложения о том, где искать, прежде чем я пойду по пути обновления марионетки или переустановки последней версии? Я не знаю, какую еще информацию предоставить, поэтому сообщите мне, если что-то может помочь.
Мои версии,
puppetlabs-release-7-12.noarch
puppet-server-3.8.6-1.el7.noarch
puppetdb-terminus-2.3.8-1.el7.noarch
puppet-3.8.6-1.el7.noarch
puppetdb-2.3.8-1.el7.noarch
Ниже приведен результат работы # puppet agent --noop --test
,
# puppet agent --noop --test
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for foo.example.com
Info: Applying configuration version '1522355276'
.
.
.
Notice: /Stage[main]/Nagios::Server/Nagios::Service_file[/etc/nagios/conf.d/services/foo-my_database_nagios_service.cfg]/File[/etc/nagios/conf.d/services/foo-my_database_nagios_service.cfg]/ensure: current_value absent, should be present (noop)
.
.
.
Notice: Finished catalog run in 21.10 seconds
Уведомление о том, что этот файл должен присутствовать, является подделкой.
Я только добавил,
nagios::service {'my_database':
check_command => 'check_tcp_nrpe!3306',
service_description => 'My Database',
}
запустите агент, затем удалите его и снова запустите агент. Каждый раз, когда я запускаю агент, он все еще думает, что проверка должна присутствовать, даже если она не определена ни в одном из моих манифестов.
Вот шаги, которые я использую для удаления кешированного элемента. После выполнения этих шагов он больше не пытается добавить это my_database
чек.
cd /var/lib/puppetdb
sudo mv db db.`date +%F` # create a backup
sudo systemctl restart puppetmaster
sudo systemctl restart puppetdb
Оказывается, эта проблема связана с тем, что я делал в «Обновлении 2». Когда puppetdb был удален, он потерял все свои ресурсы. однажды puppet agent --test --noop
был запущен на всех наших серверах, он знал, где найти ресурсы, и все можно было найти в каталоге.
По сути, после удаления puppetdb вы должны запустить puppet agent --test --noop
на всех хостах.