Я установил puppet-dashboard и заметил, что все мои задачи augeas отображаются как "измененные". Я ожидал, что augeas автоматически проверяет, нужно ли установить значение является уже установлен, и в этом случае ничего не будет делать.
Мой рецепт:
$puppet_conf = "/etc/puppet/puppet.conf"
file { "${puppet_conf}": }
augeas { "puppet_conf":
context => "/files/${puppet_conf}/",
changes => [
"set agent/report true",
],
require => File["${puppet_conf}"],
}
Нормальный запуск, когда значение уже было установлено ранее:
info: Applying configuration version '1363882751'
debug: Augeas[puppet_conf](provider=augeas): Opening augeas with root /, lens path , flags 0
debug: Augeas[puppet_conf](provider=augeas): Closed the augeas connection
debug: Augeas[puppet_conf](provider=augeas): Opening augeas with root /, lens path , flags 0
debug: Augeas[puppet_conf](provider=augeas): sending command 'set' with params ["/files//etc/puppet/puppet.conf/agent/report", "true"]
debug: Augeas[puppet_conf](provider=augeas): Closed the augeas connection
notice: /Stage[main]/Puppet_agent/Augeas[puppet_conf]/returns: executed successfully
Дата / время файла не изменились, поэтому очевидно, что файл не изменится. Тем не менее, puppet-dashboard показывает файл как «измененный». Если я добавлю «onlyif», эта часть не появится, но я не хочу повторять все в onlyif, также я могу установить только одну опцию конфигурации за раз.
Debian Squeeze
Марионетка 2.6.2
Авгий 0.10.0
Как правильно это настроить?
Спасибо за информацию о версии. Похоже, вы столкнулись с ошибкой Puppet # 11414, что связано с комбинацией новой версии Augeas 0.10.0 и старой версии Puppet.
Поставщик Puppet неверно интерпретирует номер версии Augeas как очень старую версию (строка вместо правильного сравнения версий), и он работает не так, как ожидалось.
Вам нужно будет либо использовать Puppet 2.7.18 из сжатие-бэкпорты (или Репо Puppet Labs) с исправлением ошибки, либо используйте старую или новую версию Augeas (1.0.0 или 0.9.0).