ホストに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が古いエントリを削除しないのはなぜですか?
Puppetは、過去に設定を管理し、古いリソースが適用されなくなったという理由だけで、何かを自動的に削除しません。
その古いマウントを削除したい場合は、次のようなもので削除します。
mount { '/mnt/nfs':
ensure => absent,
}