web-dev-qa-db-ja.com

puppetは/ etc / fstabの古いマウントエントリを削除しません

ホストにnfs共有をマウントするための単純なクラスをfollow(current)として定義しました

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" ],
    }
}

これで、puppetクライアントの/ etc/fstabにエントリができました。

192.168.122.1:/home/export      /mnt/share/share1       nfs     vers=3,defaults 0       0

私の問題は、パペットクラスがこのように定義されていることです(OLD)

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" ],
    }
}

そして今、私は/ etc/fstabに2つのエントリを持っています

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

puppetが古いエントリを削除しないのはなぜですか?

5
c4f4t0r

Puppetは、過去に設定を管理し、古いリソースが適用されなくなったという理由だけで、何かを自動的に削除しません。

その古いマウントを削除したい場合は、次のようなもので削除します。

mount { '/mnt/nfs':
  ensure  => absent,
}
9
Zoredache