Come gestire le partizioni montate (fstab + punti di assembly) dal burattino

Voglio gestire le partizioni montate da burattino che includono sia modificando /etc/fstab e creando le directory utilizzate come punti di assembly. Il tipo di risorsa di mount aggiorna fstab solo bene, ma utilizzando file per la creazione dei punti di assembly è un po 'complicato.

Ad esempio, per impostazione predefinita, il proprietario della directory è radice e se la root (/) della partizione montata ha un altro proprietario, il burattino cercherà di modificarlo e non lo voglio. So che posso impostare il proprietario di quella directory, ma perché dovrei preoccuparmi di ciò che è sulla partizione montata? Tutto quello che voglio fare è montarlo. C'è un modo per rendere il burattino non interessato alle autorizzazioni della directory utilizzata come punto di assembly?

  • Software RAID 10 su Linux
  • Linux - Ripristino della port origine TCP (e ritardo)
  • Errore nel file named.conf Bind9. Il legame non inizierà
  • Non è ansible allocare spazio aggiuntivo dopo la crescita dell'arrays RAID
  • Come installare Postgres su LINUX con due versioni?
  • Il riavvio del server Linux riduce la networking LAN
  • Questo è quello che sto usando adesso:

     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", } 

    Se è importnte, 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 autorizzazioni, 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 'unborderd_u' to 'system_u' puppetd[18052]: Failed to set SELinux context unborderd_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 unborderd_u:object_r:public_content_t:s0 /mnt/sda3/ 

    mentre le autorizzazioni del punto di assembly create da burattino sono:

      drwxr-xr-x. root root system_u:object_r:mnt_t:s0 /mnt/sda3/ 

    PPS Ho riportto un bug per questo comportmento strano.

  • c'è un modo per eseguire un command prima che il burattino implementi un cambiamento?
  • puppet - definisce l'host jolly in nodes.pp
  • Il modo migliore per escludere il nodo dal manifesto dei burattini
  • Puppet - rimuovere l'utente che è connesso?
  • Puppet: err: / Exec / returns: modifica da notrun a 0 failed: Il command ha superato il timeout
  • Come escludere i pipes e le socket denominati in Puppet?
  • 3 Solutions collect form web for “Come gestire le partizioni montate (fstab + punti di assembly) dal burattino”

    Potete dire a Puppet di non gestire un determinato metaparametro impostandolo su undef .

     file { "${location}/${name}": ensure => directory, owner => undef, group => undef, mode => undef, selinux_ignore_defaults => true, } 

    In questo caso, se la directory non esiste prima del assembly, verrà creata come utente e gruppo che puppetd stato avviato come (presumibilmente root: wheel) e con un default umask. Il burattino non si preoccupa di ciò che questi sono impostati al momento della creazione o in qualsiasi successiva esecuzione.


    In alternativa, se si desidera commerciare una piccola complessità per la garanzia, è ansible utilizzare un fatto personalizzato per determinare quali sono i supporti attivi e un'istruzione switch per impostare le autorizzazioni di directory a seconda che sia pre- o post-montato.

    Non è veramente una risposta ma questo è stato risolto nel burattino 2.6.7: http://projects.puppetlabs.com/issues/3999

    Ho un fatto personalizzato (funziona solo con ATM di Linux) che restituirà tutti i mount locali attualmente montati su un sistema. È orribilmente semplice, ma funziona per me – sembra che tu possa trovare qualche utilità per esso pure. Comunque, l'ho gettato su github: https://github.com/justintime/puppet/tree/master/justintime-localmounts

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.