如何使用 Puppet 向文件添加多行

如何使用 Puppet 向文件添加多行

我没有找到任何优雅的方法将多行添加到现有文件。

我注意到简单文本模式wiki 页面,但我必须在中添加一个块/etc/network/interfaces

有什么线索吗?

答案1

我同意,augeas 是迄今为止您所尝试的最佳答案。

我还建议file_line资源来自标准库puppet 库。它比 augeas 轻量得多。

您必须为每一行定义一个资源,如果顺序很重要,您可以在调用之间添加依赖关系。

使用示例:

        file_line { "no_ipv6_networking":
            path  => "/etc/sysconfig/network",
            line  => "NETWORKING_IPV6=no",
            match => "^NETWORKING_IPV6=",
        }

答案2

你可以使用augeas类型,但理想的解决方案是使用netcf因为您想管理网络接口。

前段时间,我开始了一个Puppet Netcf 提供商。 它还是尚未准备好投入生产,但如果您有一些 Ruby 技能,它可能是满足您需求的最佳解决方案(并且也绝对欢迎 PR)。

Netcf 提供程序以 XML 接口定义作为输入,例如:

netcf_if {"eth1":
  ensure     => up,
  definition => '
<interface type="ethernet" name="eth1">
  <start mode="onboot"/>
  <protocol family="ipv4">
    <ip address="192.168.0.5" prefix="24"/>
    <route gateway="192.168.0.1"/>
  </protocol>
</interface>
';
}

您可以在以下位置找到更多 XML 定义示例Netcf 存储库

相关内容