augeas в марионетке не меняет файл

Я хочу управлять содержимым файла carbon.conf с помощью Augeas из Puppet. Я использовал Augeas раньше в Puppet для управления XML-файлом, и это прекрасно работало.

Однако на этот раз, когда применяется каталог марионеток, ничего не происходит с файлом carbon.conf. Там также нет ошибки в журнале. Вот мой код в файле манифеста:

augeas { 'cache config':
  notify  => Service[carbon-cache],
  incl    => '/opt/graphite/conf/carbon.conf',
  context => '/cache',
  lens    => 'Carbon.lns',
  changes => [
    "set UDP_RECEIVER_PORT 2013",
    "set LINE_RECEIVER_PORT 2013",
    "set PICKLE_RECEIVER_PORT 2014",
  ];
}

И в журнале отладки я вижу следующее:

Debug: Augeas[cache config](provider=augeas): Opening augeas with root /, lens path /var/lib/puppet/lib/augeas/lenses, flags 64
Debug: Augeas[cache config](provider=augeas): Augeas version 1.0.0 is installed
Debug: Augeas[cache config](provider=augeas): Will attempt to save and only run if files changed
Debug: Augeas[cache config](provider=augeas): sending command 'set' with params ["/cache/UDP_RECEIVER_PORT", "2013"]
Debug: Augeas[cache config](provider=augeas): sending command 'set' with params ["/cache/LINE_RECEIVER_PORT", "2013"]
Debug: Augeas[cache config](provider=augeas): sending command 'set' with params ["/cache/PICKLE_RECEIVER_PORT", "2014"]
Debug: Augeas[cache config](provider=augeas): Skipping because no files were changed
Debug: Augeas[cache config](provider=augeas): Closed the augeas connection

Что мне здесь не хватает?

Я также заметил, что при использовании augtool из командной строки ls /files/ команда отображает только следующие папки

augtool> ls /files/
etc/ = (none)
usr/ = (none)
boot/ = (none)

Я также ожидал увидеть /opt Вот...

1 ответ

Решение

Контекст должен содержать полный путь к базовому узлу, который вы хотите для относительных путей. В вашем случае, я думаю, вы хотите, чтобы контекст был /files/opt/graphite/conf/carbon.conf/cache

Другие вопросы по тегам