Chcę zarządzać zamontowanymi partycjami z marionetki, która obejmuje zarówno modyfikowanie, jak /etc/fstabi tworzenie katalogów używanych jako punkty montowania. Typ mountzasobu aktualizuje się fstabdobrze, ale używanie go filedo tworzenia punktów montowania jest nieco trudne.
Na przykład domyślnie właścicielem katalogu jest root, a jeśli root (/) zamontowanej partycji ma innego właściciela, marionetka spróbuje go zmienić i nie chcę tego. Wiem, że mogę ustawić właściciela tego katalogu, ale dlaczego miałbym przejmować się tym, co jest na zamontowanej partycji? Wszystko, co chcę zrobić, to zamontować. Czy istnieje sposób, aby marionetka nie przejmowała się uprawnieniami katalogu używanego jako punkt montowania?
Z tego właśnie korzystam:
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",
}
W razie potrzeby używam puppet-0.25.4-1.fc13.noarch.rpm i puppet-server-0.25.4-1.fc13.noarch.rpm.
PS undefdziała dobrze dla właściciela, grupy i uprawnień, ale nie dla SELinux. Jeśli partycje są już zamontowane, marionetka narzeka:
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'
Uprawnienia zamontowanej partycji to:
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 /mnt/sda3/
podczas gdy uprawnienia do punktu montowania utworzonego przez marionetkę to:
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 /mnt/sda3/
PPS Zgłosiłem błąd dotyczący tego dziwnego zachowania.
undefwykonał lewę. Katalogi są tworzone z następującym uprawnieniem,rwxr-xr-x. root root system_u:object_r:mnt_t:s0co jest dla mnie w porządku.