Je veux gérer les partitions montées à partir de marionnettes, ce qui inclut à la fois la modification /etc/fstab
et la création des répertoires utilisés comme points de montage. Le mount
type de ressource se met fstab
à jour très bien, mais son utilisation file
pour créer les points de montage est un peu délicate.
Par exemple, par défaut, le propriétaire du répertoire est root et si la racine (/) de la partition montée a un autre propriétaire, puppet essaiera de le changer et je ne le veux pas. Je sais que je peux définir le propriétaire de ce répertoire, mais pourquoi devrais-je me soucier du contenu de la partition montée? Tout ce que je veux faire, c'est le monter. Existe-t-il un moyen de faire en sorte que la marionnette ne se soucie pas des autorisations du répertoire utilisé comme point de montage?
Voici ce que j'utilise en ce moment:
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",
}
Dans le cas où cela compte, j'utilise puppet-0.25.4-1.fc13.noarch.rpm et puppet-server-0.25.4-1.fc13.noarch.rpm.
PS undef
fonctionne bien pour le propriétaire, le groupe et les autorisations, mais pas pour SELinux. Si les partitions sont déjà montées, la marionnette se plaint:
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'
Les autorisations de la partition montée sont:
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 /mnt/sda3/
tandis que les autorisations du point de montage créé par la marionnette sont:
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 /mnt/sda3/
PPS J'ai signalé un bug pour ce comportement étrange.
undef
a fait l'affaire. Les répertoires sont créés avec l'autorisation suivante,rwxr-xr-x. root root system_u:object_r:mnt_t:s0
ce qui me convient.selrange => undef, selrole => undef, seltype => undef, seluser => undef,
à la réponse.Pas vraiment une réponse mais cela a été corrigé dans la marionnette 2.6.7: http://projects.puppetlabs.com/issues/3999
la source
J'ai un fait personnalisé (fonctionne avec Linux uniquement ATM) qui retournera tous les supports locaux actuellement montés sur un système. C'est horriblement simple, mais fonctionne pour moi - on dirait que vous pourriez également en trouver une utilité. Quoi qu'il en soit, je l'ai jeté sur github: https://github.com/justintime/puppet/tree/master/justintime-localmounts
la source