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

Ресурсы для кэширования марионеток

Я пытаюсь отладить проблему кеширования с помощью 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

Оказывается, эта проблема связана с тем, что я делал в «Обновлении 2». Когда puppetdb был удален, он потерял все свои ресурсы. однажды puppet agent --test --noop был запущен на всех наших серверах, он знал, где найти ресурсы, и все можно было найти в каталоге.

По сути, после удаления puppetdb вы должны запустить puppet agent --test --noop на всех хостах.