puppet 不会删除 /etc/fstab 中的旧挂载条目

c4f*_*t0r 5 linux puppet

我定义了一个简单的类,用于在主机上安装 nfs 共享,如下所示(当前)

class mounts {
    file { [ "/mnt/share", "/mnt/share/share1" ]:
    ensure => 'directory',
    }

    mount { '/mnt/share/share1':
    ensure  => 'mounted',
    device  => '192.168.122.1:/home/export',
    dump    => '0',
    fstype  => 'nfs',
    options => 'vers=3,defaults',
    pass    => '0',
    require => File[ "/mnt/share", "/mnt/share/share1" ],
    }
}
Run Code Online (Sandbox Code Playgroud)

所以现在我在 puppet 客户端的 /etc/fstab 中有一个条目

192.168.122.1:/home/export      /mnt/share/share1       nfs     vers=3,defaults 0       0
Run Code Online (Sandbox Code Playgroud)

我的问题是,木偶类是以这种方式定义的(旧)

class mounts {
    file { '/mnt/nfs':
    ensure => 'directory',
    }

    mount { '/mnt/nfs':
    ensure  => 'mounted',
    device  => '192.168.122.1:/home/export',
    dump    => '0',
    fstype  => 'nfs',
    options => 'vers=3,defaults',
    pass    => '0',
    require => File[ "/mnt/nfs" ],
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我在 /etc/fstab 中有两个条目

192.168.122.1:/home/export      /mnt/nfs        nfs     vers=3,defaults 0       0 #OLD
192.168.122.1:/home/export      /mnt/share/share1       nfs     vers=3,defaults 0       0 #NEW
Run Code Online (Sandbox Code Playgroud)

为什么 puppet 不删除旧条目?

Zor*_*che 9

Puppet 不会自动删除某些内容,只是因为它管理了过去的设置并且旧资源不再适用。

如果你想移除那个旧的安装,然后用类似这样的东西移除它。

mount { '/mnt/nfs':
  ensure  => absent,
}
Run Code Online (Sandbox Code Playgroud)