Eu quero gerenciar as partições montadas do fantoche, que inclui modificar /etc/fstab
e criar os diretórios usados como pontos de montagem. O mount
tipo de recurso é atualizado fstab
, mas o uso file
para criar os pontos de montagem é um pouco complicado.
Por exemplo, por padrão, o proprietário do diretório é root e se a raiz (/) da partição montada tiver outro proprietário, o puppet tentará alterá-lo e eu não quero isso. Eu sei que posso definir o proprietário desse diretório, mas por que devo me importar com o que está na partição montada? Tudo o que eu quero fazer é montá-lo. Existe uma maneira de fazer o fantoche não se importar com as permissões do diretório usado como o ponto de montagem?
É isso que estou usando agora:
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",
}
Caso isso importe, estou usando o puppet-0.25.4-1.fc13.noarch.rpm e o puppet-server-0.25.4-1.fc13.noarch.rpm.
O PS undef
funciona bem para o proprietário, grupo e permissões, mas não para o SELinux. Se as partições já estiverem montadas, o fantoche reclama:
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'
As permissões da partição montada são:
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 /mnt/sda3/
enquanto as permissões do ponto de montagem criadas pelo fantoche são:
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 /mnt/sda3/
PPS Eu relatei um bug para esse comportamento estranho.
undef
fez o truque. Os diretórios são criados com a seguinte permissão, orwxr-xr-x. root root system_u:object_r:mnt_t:s0
que é bom para mim.selrange => undef, selrole => undef, seltype => undef, seluser => undef,
à resposta.Não é realmente uma resposta, mas isso foi corrigido no boneco 2.6.7: http://projects.puppetlabs.com/issues/3999
fonte
Eu tenho um fato personalizado (funciona apenas com o Linux ATM) que retornará todas as montagens locais atualmente montadas em um sistema. É terrivelmente simples, mas funciona para mim - parece que você também pode achar útil. Enfim, eu vomitei no github: https://github.com/justintime/puppet/tree/master/justintime-localmounts
fonte