Лучший способ написать манифест для добавления записей 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.

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