Saya ingin mengelola partisi yang dipasang dari boneka yang mencakup memodifikasi /etc/fstabdan membuat direktori yang digunakan sebagai titik pemasangan. The mounttipe sumber daya update fstabbaik-baik saja, tetapi menggunakan fileuntuk 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 undefberfungsi 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.
undefmelakukan trik. Direktori dibuat dengan izin berikutrwxr-xr-x. root root system_u:object_r:mnt_t:s0yang tidak masalah bagi saya.