编写用于添加Linux auto.misc条目的puppet清单的最佳方法,而不会覆盖现有的配置行

时间:2015-08-11 00:37:50

标签: puppet augeas automount

我目前正在编写一个用于向auto.misc文件添加行的puppet模块。

我使用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 个答案:

答案 0 :(得分:1)

如果您一次只需要添加/修改一行,那么来自file_linepuppetlabs-stdlib资源比augeas更容易使用。

答案 1 :(得分:0)

这里最好的选择是编写一个合适的类型+ augeas提供者,而不是使用augeas类型。这将允许您将选项指定为数组属性。

请参阅augeasproviders.com以获取示例,以及实施augeas providers on github的各种模块。