Лучший способ написать манифест для добавления записей auto.misc в Linux без перезаписи существующих строк конфигурации
В настоящее время я пишу кукольный модуль для добавления строк в файл auto.misc.
Я использовал augeas для добавления новой записи в файл auto.misc, и придумал что-то вроде этого ниже, и оно работает довольно хорошо каждый раз, когда я запускаю без дублирования.
augeas { "new auto mountpoint":
context => "/files/etc/auto.misc",
changes => [
"set 01 'store'",
"set 01/opt[1] 'ro'",
"set 01/opt[2] 'soft'",
"set 01/opt[3] 'intr'",
"set 01/location/1/host 'uxkickstart.thenational.com'",
"set 01/location/1/path '/common'",
],
onlyif => "match *[. = 'store'] size == 0",
}
Теперь, если я хочу добавить новую опцию для конкретной точки монтирования, она никогда не обновляется.
Если бы кто-то мог сказать мне, каков наилучший способ сделать это или использовать augeas по-другому, чтобы решить проблему здесь, было бы здорово.
Спасибо
2 ответа
Если вам нужно только добавить / изменить строку за раз, тогда ресурс file_line из puppetlabs-stdlib гораздо проще в использовании, чем augeas.
Лучший вариант здесь - написать правильный провайдер type+augeas вместо использования augeas
тип. Это позволит вам указать параметры в качестве свойства массива.
Смотрите http://augeasproviders.com/ для примеров и различных модулей, реализующих провайдеры augeas на github.