【问题标题】:Ensure block exists in config file with puppet使用 puppet 确保块存在于配置文件中
【发布时间】:2016-10-26 05:02:36
【问题描述】:

在这个现有块之后

prefix 2a03:2267:4e6f:7264:0000:0000:0000:0000/64
 {
 };

我想添加一个新块,如果它不存在的话:

prefix fdda:fee6:0187:0000:0000:0000:0000:0000/64
 {
 };

/etc/radvd.conf(不在文件末尾)

然后/etc/init.d/radvd restart

我如何用 puppet 管理这个?

【问题讨论】:

  • 第一个需要 augeas,第二个需要订阅 augeas 资源的服务资源。我不喜欢奥格亚斯,所以我无法从低层次帮助你。

标签: puppet radvd


【解决方案1】:

安装

puppet module install puppetlabs-stdlib

然后创建一个脚本addblock.pp:

file_line { "ensure $line in /etc/radvd.conf":
    path  => '/etc/radvd.conf',
    line  => "prefix fdda:fee6:0187:0000:0000:0000:0000:0000/64\n{\n};",
}


exec { "restart":
  command => '/etc/init.d/radvd restart',
  provider => shell,
  require => File_line["ensure $line in /etc/radvd.conf"],
}

【讨论】:

  • 也许你应该自己试试这个脚本? ?
  • @rubo77:请使用puppetlabs/stdlibFile_line 不是默认资源,您必须在 init.pp 中有 include ::stdlib 并在 /path/to/puppet/modules/ 目录中下载 puppetlabs/stdlib 模块
  • @rubo77: 这个文件是静态的吗?
  • 配置文件是静态的,是的。但是 puppet 脚本会被更频繁地调用,并且只有在缺少该行时才应该更改
  • 我们正在使用 puppet 更新我们的网状网关。即安装服务器并同时添加更改(如果有的话)。所以我需要一个解决方案来检查该行是否存在,如果不存在,则添加它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 2021-09-26
相关资源
最近更新 更多