Марионеточный augeas перестал работать на вставке с линзой и указанным incl

augeas вставляют команду, бросает ошибку, если я указываю линзу и incl в ресурсе. Я действительно не смог найти любого с подобной проблемой. Когда я включаю следующий ресурс, он бросает бесполезную ошибку, которая просто говорит

$file = "/etc/ldap.conf"
$comment_style = "#comment"
$lens = "Spacevars.lns"
augeas { "${file}":
  context => "/files${file}",
  changes => [
    "ins ${comment_style} before '*[1]'",
    "set ${comment_style}[1] 'Puppet has modified this file with augeas'",
  ],  
  incl => "/files${file}",
  lens => $lens,
}

Я попробовал эквивалент в augtool:

# augtool --noload --noautoload
augtool> set /augeas/load/Spacevars/lens "Spacevars.lns"
augtool> set /augeas/load/Spacevars/incl "/etc/ldap.conf"
augtool> load
augtool> ins #comment before /files/etc/ldap.conf/*[1]
augtool> set /files/etc/ldap.conf/#comment[1] 'Puppet has modified this file with augeas'
augtool> save
Saved 1 file(s)

Я нашел, что без вставки управляют, чтобы она хорошо работала (хотя без набора управляют, чтобы она стала безубыточным в augtool, жалующемся на уродливый дочерний узел). Ошибка марионетки при выполнении этого с - отладка.

Debug: Augeas[/etc/ldap.conf](provider=augeas): sending command 'ins' with params ["#comment", "before", "/files/etc/ldap.conf/*[1]"]
Debug: Augeas[/etc/ldap.conf](provider=augeas): Closed the augeas connection
Error: /Stage[main]/Augeasdebug/Augeas[/etc/ldap.conf]: Could not evaluate: Error sending command 'ins' with params ["#comment", "before", "/files/etc/ldap.conf/*[1]"]/Error sending command 'ins' with params ["#comment", "before", "/files/etc/ldap.conf/*[1]"]

Без линзы и incl опций это хорошо работает, хотя я должен смочь указать их. Я только что начинаю использовать augeas, но я не могу найти так много соответствующей документации с помощью марионетки с augeas. Я должен был предположить эквивалентные команды augtool.

0
задан 27 June 2014 в 19:36
1 ответ

Параметр incl указывает путь к файлу в файловой системе, а не в дереве Augeas, поэтому необходимо удалить /files из параметра incl.

Так как в параметре /files вы поместили incl, Augeas не может найти файл для разбора, а ins пытается вставить перед несуществующим путем, что является ошибкой.

.
3
ответ дан 4 December 2019 в 12:31

Теги

Похожие вопросы