Mastodon Mastodon - Puppet, Arrays & Iteratoren
 logo
  • Home 
  • Tags 
  • Blog posts 
  1. Home
  2. Blog posts
  3. Puppet, Arrays & Iteratoren

Puppet, Arrays & Iteratoren

Posted on July 18, 2013  (Last modified on March 9, 2022) • 1 min read • 194 words
Puppet  
Puppet  
Share via

Endlich, endlich, endlich kommt in Puppet 3.2 die Möglichkeit, Schleifen zu bauen. Dann könnte ich eventuell folgende Aufgabenstellung ein klein wenig einfacher realisieren (aktuell arbeite ich bis zur endgültigen Umstellung unserer Systeme mit Puppet 2.7):

  • Fasse alle im Rechner befindlichen Blockdevices der Form “/dev/sd*” - aber außer /dev/sda - in einer LVM volume group zusammen.

Das Herausfinden der Blockdevices erledigt ein Fact aus Facter … naja, nicht ganz - ein in Facter 2.0 verfügbarer Fact, den ma aber dankenswerterweise zurückportieren kann. Dieser liefert uns $blockdevices - eine Komma-getrennte Liste der gefundenen devices, allerdings ohne “/dev/”, also nur “sda,sdb,sdc”.

Das hinzufügen, und dann … ja, was dann? In Ruby kein Thema, aber jetzt möchte ich von “sda,sdb,sdc” zu ["/dev/sda", “/dev/sdb”, “/dev/sdc”].

Und das geht so:

# next line broken up for readability
$devices_tmp    = inline_template( '
    <%= devs=scope.lookupvar("::blockdevices")
        .split(",")
        .select{|f| ! f.include? "sda" }
        .select{|f| f.include? "sd" }
        .collect{|f| "/dev/" + f}.join "," %>' )

# here we split the string back to an array.
$devices_wanted = split($devices_tmp, ",")

# but it works.
# isn't life shit?
notify { $devices_wanted : }</span>

Schön ist anders. Falls jemand eine bessere Idee hat - immer her damit …

 Puppet & Augeas & Pulp
Puppet Stages & Notify 
In case you want to follow me

Here are some links. The further to the right, the less active.

           
(c) Axel Bock | Powered by Hinode.
Link copied to clipboard
Code copied to clipboard