Ресурсы для кэширования кукол
Я пытаюсь отладить проблему кэширования с 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
Обновление 1
Ниже приведен результат работы # 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',
}
запустите агент, затем удалите его и снова запустите агент. Каждый раз, когда я запускаю агент, он все еще думает, что проверка должна присутствовать, даже если она не определена ни в одном из моих манифестов.
Обновление 2
Это шаги, которые я использую для удаления кэшированного элемента. После выполнения этих шагов он больше не пытается добавить, что my_database
проверять.
cd /var/lib/puppetdb
sudo mv db db.`date +%F` # create a backup
sudo systemctl restart puppetmaster
sudo systemctl restart puppetdb
1 ответ
Эта проблема, оказывается, связана с тем, что я делал в "Обновлении 2". Когда puppetdb был удален, он потерял все свои ресурсы. однажды puppet agent --test --noop
был запущен на всех наших серверах, он знал, где найти ресурсы, и все можно было найти в каталоге.
Как правило, после удаления puppetdb вы должны запустить puppet agent --test --noop
на всех хозяевах.