比如说我有一下配置文件:
node 'agent.example.com' {
include mysql
}
这样一来,agent.example.com
就会安装上mysql
这个module
,但是这个module
可能会产生其他配置文件或者安装了某一些依赖的包。
现在我想从agent.example.com
中恢复到没有安装mysql
这个module
的状态,也就删除掉它(我这里说的不是 puppet module uninstall mysql
),要如何操作呢?
一个package
可以用ensure => 'purged'
来移除掉,一个module
要怎么移除掉呢?
package可以使用ensure是因为package的类型定义了ensure这个参数
module是一个class(class里可能还引用了别的class),而不是一个类型,没有参数。要删除这个module带来的package、service、file等等,只能在这个module里定义一个module_name::removed类,在这个类里,把各种资源置为删,例如:
class mysql::removed { Package["mysql-server"] { ensure => purged, } File["/etc/my.cnf"] { ensure => absent, } } node "xxx.example.com" inherts 'agent.example.com' { include mysql::removed }