首页 > puppet include 的 module 如何删除掉

puppet include 的 module 如何删除掉

比如说我有一下配置文件:

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
}
【热门文章】
【热门文章】