Thanks, John. It did help. I was wondering if we can somehow use an array
of these hashes so that we don't have to use require.

On Thu, Oct 30, 2014 at 9:05 AM, jcbollinger <[email protected]>
wrote:

>
>
> On Wednesday, October 29, 2014 11:15:45 AM UTC-5, amogh patel wrote:
>>
>> Hi Puppet Users,
>>
>> I've a requirement to create filesystem and mount 10 disks. For that,
>> I've created this define and calling that define with hash. I need to mount
>> these disks in sequence like below:
>>
>
>
> Why does the sequence in which they are mounted matter?  You do know that
> given the properties you specify, at system boot these filesystems will be
> mounted in parallel (which is likely to complete in random order), right?
>
>
>
>>
>> /dev/sdb1                         917G   72M  870G   1% /data/01
>> /dev/sdc1                         917G   72M  870G   1% /data/02
>> /dev/sdd1                         917G   72M  870G   1% /data/03
>> /dev/sde1                         917G   72M  870G   1% /data/04
>> /dev/sdf1                         917G   72M  870G   1% /data/05
>> /dev/sdg1                         917G   72M  870G   1% /data/06
>> /dev/sdh1                         917G   72M  870G   1% /data/07
>> /dev/sdi1                         917G   72M  870G   1% /data/08
>> /dev/sdj1                         917G   72M  870G   1% /data/09
>> /dev/sdk1                         917G   72M  870G   1% /data/10
>>
>> But when I run puppet, it mounts in random order. Any suggestions please.
>>
>> Here is the snippets of my code:
>>
>> Define:
>>
>> define base::fsdef (
>>   $mountpoint,
>>   $pdisk = $title
>> ) {
>>   filesystem { $pdisk :
>>     ensure  => present,
>>     fs_type => 'ext4',
>>     options => '-b 4096',
>>   }
>>   file { $mountpoint :
>>     ensure  => directory,
>>     owner   => 'root',
>>     group   => 'root,
>>     mode    => '0755',
>>     require => Filesystem[$pdisk],
>>   }
>>   mount { "fstab_${pdisk}" :
>>     ensure  => mounted,
>>     name    => $mountpoint,
>>     device  => $pdisk,
>>     fstype  => 'ext4',
>>     options => 'defaults',
>>     atboot  => true,
>>     dump    => '1',
>>     pass    => '2',
>>     require => File[$mountpoint]
>>   }
>> }
>>
>> Define call:
>>
>>   $fs_hash = {
>>     '/dev/sdb1' => { mountpoint => '/data/01'},
>>     '/dev/sdc1' => { mountpoint => '/data/02'},
>>     '/dev/sdd1' => { mountpoint => '/data/03'},
>>     '/dev/sde1' => { mountpoint => '/data/04'},
>>     '/dev/sdf1' => { mountpoint => '/data/05'},
>>     '/dev/sdg1' => { mountpoint => '/data/06'},
>>     '/dev/sdh1' => { mountpoint => '/data/07'},
>>     '/dev/sdi1' => { mountpoint => '/data/08'},
>>     '/dev/sdj1' => { mountpoint => '/data/09'},
>>     '/dev/sdk1' => { mountpoint => '/data/10'},
>>    }
>>
>>   create_resources(base::fsdef, $fs_hash)
>>
>
>
> Why in the world are you creating a hash in your manifest and passing it
> to create_resources()?   Ordinary resource declarations are clearer when
> all the resources and their parameters are statically known.  For instance:
>
> base::fsdef {
>     '/dev/sdb1': mountpoint => '/data/01';
>     '/dev/sdc1': mountpoint => '/data/02', require => Base::Fsdef[
> '/dev/sdb1'];
>     '/dev/sdd1': mountpoint => '/data/03', require => Base::Fsdef[
> '/dev/sdc1'];
>     '/dev/sde1': mountpoint => '/data/04', require => Base::Fsdef[
> '/dev/sdd1'];
>     '/dev/sdf1': mountpoint => '/data/05', require => Base::Fsdef[
> '/dev/sde1'];
>     '/dev/sdg1': mountpoint => '/data/06', require => Base::Fsdef[
> '/dev/sdf1'];
>     '/dev/sdh1': mountpoint => '/data/07', require => Base::Fsdef[
> '/dev/sdg1'];
>     '/dev/sdi1': mountpoint => '/data/08', require => Base::Fsdef[
> '/dev/sdh1'];
>     '/dev/sdj1': mountpoint => '/data/09', require => Base::Fsdef[
> '/dev/sdi1'];
>     '/dev/sdk1': mountpoint => '/data/10', require => Base::Fsdef[
> '/dev/sdj1'];
> }
>
> That particular implementation also includes relationship declarations (in
> the form of require parameters) that will cause Puppet to manage those
> mounts in the order listed, in case you really do need that.  There are
> other ways to set up such relationships, too.  Note that this also means
> that if any of the mount resources fails then Puppet will not manage any of
> the subsequent ones (another difference from the system's at boot time).
>
>
> John
>
>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "Puppet Users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/puppet-users/LAfBVAH-D1g/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/587c32e7-a14e-4fc4-9755-5ae67a1a8d4e%40googlegroups.com
> <https://groups.google.com/d/msgid/puppet-users/587c32e7-a14e-4fc4-9755-5ae67a1a8d4e%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/CAJppLhrjTygBTgY1HXYbPW-pHza6ExKTt9wZso38Y%3DUkHO3nFQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to