你可以不申请一个木偶清单行动?

我已经应用了一个木偶清单,其中又包括一个木偶模块,添加了几个实体/ opt / …

有没有办法来取消应用木偶模块的影响?

即“木偶模块卸载…”

那没有。 由于傀儡模块可以执行任意命令,因此无法准确确定“不适用”的含义。

一些模块附带一个相应的反模块来执行卸载(例如, foo vs foo::disable ),但是这需要明确的编码。

虽然这将是很好的,但没有可用的不适用。

你必须自己编写一个撤消配方,具体取决于你做了什么(安装的软件包,然后清除它,添加用户,然后禁用它,等等)

被replace的文件应该被存储在clientbucket中(通常是/ var / lib / puppet / clientbucket,但是取决于你的版本和你的设置)

不,没有。 一个模块将做什么可以非常依赖于你的系统的状态。 例如,如果您已经在系统中添加了/ opt中的某些条目,该怎么办? 那么它只会添加缺less的。 一旦国家变了,木偶不再关心以前的状态了。 代理运行的下一次只是比较当前系统的状态和它认为应该是什么,然后排队。

Puppet的关键概念之一是幂等性,这意味着如果你多次运行这个清单,你总是会得到相同的结果。 你要做的是强制你想要发生的已知结束状态。 如果模块做了你不想要的事情,你可以不使用它,写你自己的,或者你可以修改它。

正如robbyt提到的那样,当您testing新的清单时,使用–noop模式非常有用。 在将其应用到生产系统之前,您还应该考虑在其他地方testing它们。 虚拟机非常适合这种testing,您可以拍摄快照,然后根据需要回滚。

您的代理运行应该被logging到系统日志。 您还可以检查日志并查看所做的操作并手动撤消更改(如果您使用的是Puppet Enterprise,也可以通过Web控制台查看历史日志)。 但是如果这个模块仍然应用到节点上,那么这个模块就不会起作用,代理将在运行时重新启动。