Requer o arquivo para montagem e também atualiza o arquivo após a montagem?

1

Estou tentando garantir que existe um diretório para uma montagem e, em seguida, atualize as permissões desse diretório após a montagem. Estou recebendo o seguinte erro:

err: Failed to apply catalog: Cannot alias File[pre_eos_mount] to ["/var/tmp/eos"] at /etc/puppet/modules/mymodule/manifests/eos.pp:29; resource ["File", "/var/tmp/eos"] already declared at /etc/puppet/modules/mymodule/manifests/eos.pp:47

Eu gostaria de fazer algo assim:

file { $eos_mount :
    ensure  => 'directory',
    mode    => '1777',
    owner   => 'root',
    group   => 'root',
  }

  mount { $eos_mount :
    ensure  => 'mounted',
    device  => $lv_device,
    fstype  => $fstype,
    options => 'defaults,noatime,nodiratime',
    require => File[$eos_mount],
    notify  => File['post_eos'],
  }

  file { 'post_eos' :
    path    => $eos_mount,
    ensure  => 'directory',
    mode    => '1777',
    owner   => 'root',
    group   => 'root',
  }

Qual é a maneira de garantir as permissões de uma pasta depois que ela foi montada?

    
por Andy Shinn 24.09.2012 / 23:28

3 respostas

1

No fantoche 3+, você pode modificar um recurso existente assim:

Veja a documentação aqui para mais detalhes

file { $eos_mount :
  ensure  => 'directory',
  mode    => '1777',
  owner   => 'root',
  group   => 'root',
}

mount { $eos_mount :
  ensure  => 'mounted',
  device  => $lv_device,
  fstype  => $fstype,
  options => 'defaults,noatime,nodiratime',
  require => File[$eos_mount],
  notify  => File['post_eos'],
}

File[$eos_mount] {
  path    => $eos_mount,
  ensure  => 'directory',
  mode    => '1777',
  owner   => 'root',
  group   => 'root',
}
    
por 12.06.2013 / 22:13
0

Eu prefiro usar o módulo: puppet-name_service_lookups e fazer algo como:

$user_info = getpwnam($owner) 
$user_uid = $user_info['uid'] 
$group_info = getgrnam($group) 
$group_gid = $group_info['gid'] 

e nas opções de montagem, faça:

options => "defaults,noatime,nodiratime,uid=${user_uid},gid=${group_gid}",
    
por 14.07.2015 / 00:23
-1
Tanto quanto eu entendo do erro, o problema é que você já definiu o recurso file {'/var/tmp/eos': } em algum lugar antes, então o mestre de marionetes não permite que você compile o catálogo, porque um recurso tem que ser único (tipo de recurso + $ nome ).

Nesse caso, quando você tiver um potencial conflito de mesmos recursos, use recursos virtuais , que garantem que ele seja adicionado apenas uma vez no catálogo, independentemente de quantas vezes você o incluir.

    
por 26.09.2012 / 06:12

Tags