0

我目前正在编写一个 puppet 模块,用于向 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 来解决这里的问题,那就太好了。

谢谢

4

2 回答 2

1

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

于 2015-08-11T05:28:36.170 回答
0

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

有关示例,请参见augeasproviders.com ,以及在 github 上实现 augeas 提供程序的各种模块。

于 2015-08-11T10:30:39.920 回答