如何使用 puppet 恢复配置

DJY*_*Yod 5 installation configuration puppet

我编写了一个模块,它使用 puppet 在 /etc/rsyslog.d/60-custconfig.conf 中为 rsyslog 编写配置。

当我将模块添加到节点时,它可以工作,但是如果我删除注释或删除节点中的模块调用,是否应该删除文件?如果没有,有没有办法回滚配置或安装?

ger*_*ijk 7

您不会通过删除资源来恢复 Puppet 执行的操作。通过从清单中删除资源,您只是告诉 Puppet 不要管理它(不再)。

此外,Puppet 根本不记得/不知道以前的状态,因此它无法恢复到那个状态。它只是尝试将系统更改为您在清单中定义的状态。

我在这里看到的一种方法是file再次包含资源,但现在使用ensure => absent

file {
    '/etc/rsyslog.d/60-custconfig.conf':
    ensure => absent,
}
Run Code Online (Sandbox Code Playgroud)

您也可以通过这种方式更改 Puppet 模块的设计:

  • 管理 rsyslog 模块中的所有 rsyslog 配置文件。
  • 从需要更改 rsyslog 的其他模块创建虚拟自定义定义类型。
  • 在 rsyslog 模块中,收集虚拟配置节并指示它删除该自定义类型的所有未定义资源。

或者更简单的是使用puppetlabs-concat模块,在模块中定义 virtual concat::fragments 并将它们收集到 rsyslog 模块中以构建 '60-custconfig.conf' 配置文件。如果随后虚拟资源从其他模块中删除,则收集的片段将导致文件中的片段现在不受管理。实际上,这些将从文件中删除。