Saya ingin mengelola partisi yang dipasang dari boneka yang mencakup memodifikasi /etc/fstab
dan membuat direktori yang digunakan sebagai titik pemasangan. The mount
tipe sumber daya update fstab
baik-baik saja, tetapi menggunakan file
untuk menciptakan mount point sedikit rumit.
Sebagai contoh, secara default pemilik direktori adalah root dan jika root (/) dari partisi yang dipasang memiliki pemilik lain, boneka akan mencoba mengubahnya dan saya tidak menginginkannya. Saya tahu bahwa saya dapat mengatur pemilik direktori itu, tetapi mengapa saya harus peduli apa yang ada di partisi yang di-mount? Yang ingin saya lakukan adalah me-mount-nya. Apakah ada cara untuk membuat boneka tidak peduli tentang izin direktori yang digunakan sebagai titik mount?
Inilah yang saya gunakan saat ini:
define extra_mount_point(
$device,
$location = "/mnt",
$fstype = "xfs",
$owner = "root",
$group = "root",
$mode = 0755,
$seltype = "public_content_t"
$options = "ro,relatime,nosuid,nodev,noexec",
) {
file { "${location}/${name}":
ensure => directory,
owner => "${owner}",
group => "${group}",
mode => $mode,
seltype => "${seltype}",
}
mount { "${location}/${name}":
atboot => true,
ensure => mounted,
device => "${device}",
fstype => "${fstype}",
options => "${options}",
dump => 0,
pass => 2,
require => File["${location}/${name}"],
}
}
extra_mount_point { "sda3":
device => "/dev/sda3",
fstype => "xfs",
owner => "ciupicri",
group => "ciupicri",
$options => "relatime,nosuid,nodev,noexec",
}
Dalam hal ini penting, saya menggunakan puppet-0.25.4-1.fc13.noarch.rpm dan puppet-server-0.25.4-1.fc13.noarch.rpm.
PS undef
berfungsi dengan baik untuk pemilik, grup, dan izin, tetapi tidak untuk SELinux. Jika partisi sudah terpasang, boneka mengeluh:
puppetd[18052]: Failed to set SELinux context system_u:object_r:public_content_t:s0 on /mnt/sda3
puppetd[18052]: (/File[/mnt/sda3]/seluser) seluser changed 'unconfined_u' to 'system_u'
puppetd[18052]: Failed to set SELinux context unconfined_u:object_r:mnt_t:s0 on /mnt/sda3
puppetd[18052]: (/File[/mnt/sda3]/seltype) seltype changed 'public_content_t' to 'mnt_t'
Izin partisi yang dipasang adalah:
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 /mnt/sda3/
sedangkan izin mount point yang dibuat oleh boneka adalah:
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 /mnt/sda3/
PPS Saya telah melaporkan bug untuk perilaku aneh ini.
undef
melakukan trik. Direktori dibuat dengan izin berikutrwxr-xr-x. root root system_u:object_r:mnt_t:s0
yang tidak masalah bagi saya.selrange => undef, selrole => undef, seltype => undef, seluser => undef,
jawabannya.Tidak benar-benar jawaban tetapi ini telah diperbaiki di wayang 2.6.7: http://projects.puppetlabs.com/issues/3999
sumber
Saya memiliki fakta khusus (hanya bekerja dengan ATM Linux) yang akan mengembalikan semua mount lokal yang saat ini terpasang pada suatu sistem. Ini sangat sederhana, tetapi bekerja untuk saya - sepertinya Anda mungkin menemukan kegunaan untuk itu juga. Bagaimanapun, saya melemparkannya ke github: https://github.com/justintime/puppet/tree/master/justintime-localmounts
sumber