Voglio gestire le partizioni montate dal pupazzo che include sia la modifica /etc/fstab
che la creazione delle directory utilizzate come punti di montaggio. Il mount
tipo di risorsa si aggiorna fstab
bene, ma l'utilizzo file
per la creazione dei punti di montaggio è un po 'complicato.
Ad esempio, per impostazione predefinita il proprietario della directory è root e se la radice (/) della partizione montata ha un altro proprietario, il pupazzo proverà a cambiarlo e non lo voglio. So che posso impostare il proprietario di quella directory, ma perché dovrei preoccuparmi di cosa c'è nella partizione montata? Tutto quello che voglio fare è montarlo. C'è un modo per fare in modo che il pupazzo non si preoccupi delle autorizzazioni della directory usata come punto di montaggio?
Questo è quello che sto usando in questo momento:
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",
}
Nel caso sia importante, sto usando puppet-0.25.4-1.fc13.noarch.rpm e puppet-server-0.25.4-1.fc13.noarch.rpm.
PS undef
funziona bene per proprietario, gruppo e permessi, ma non per SELinux. Se le partizioni sono già montate, il burattino si lamenta:
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'
Le autorizzazioni della partizione montata sono:
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 /mnt/sda3/
mentre le autorizzazioni del mount point creato da puppet sono:
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 /mnt/sda3/
PPS Ho segnalato un bug per questo strano comportamento.
undef
ha fatto il trucco. Le directory sono create con la seguente autorizzazionerwxr-xr-x. root root system_u:object_r:mnt_t:s0
che va bene per me.