我想使用Augeas来修改“/ etc / inittab”,但只有在安装了“sysvinit”软件包时才会发生这种情况。 该包不受Puppet控制(不得)。
Augeas的“onlyif”似乎不能检查Augeas的其他东西,id Augeas无法检查文件是否存在。
有没有办法实现这一点,而不创build一个自定义的事实?
写一个Augeas提供商,并将其限制在一个事实中 ,检查包的存在。
把它们加起来:
sysvinit_package事实,值true或false (甚至包版本) inittab是限于事实。 注意: augeasproviders API正在重做,以便在augeasproviders模块之外轻松创build提供程序。 例如,请参阅shellvar独立提供程序 (现在,PoC可能最终会以这种方式工作)。
另外,如果你只是想使用augeastypes而不是写一个提供者(我会推荐这个),你可以写一个事实并在Puppet DSL中使用它来避免在没有安装sysvinit时声明augeas资源。
另一个可怕的select是抛弃运行augtool的exec资源的augeas资源types,并在augtool命令中检查包。
我会去与自定义的事实。