Hi,

I've the following class to manage the root password in our servers.

class root_user_private_servers {

                user { "root":
                       ensure=>"present",
                       uid=>"0",
                       gid=>"0",
                       comment=>"root",
                       shell=>"/bin/bash",
                       home=>"/root",
                       managehome=>"false",
                       allowdupe=>"false",
                       password => $operatingsystem ? {
                                           debian =>
$lsbdistcodename ? {
                                                      default =>
'hashXXXXXXXXXXXXXX',
                                                      lenny   =>
'hashXXXXXXXXXXXXXX',
                                                      etch    =>
'hashXXXXXXXXXXXXXX',
                                                      sarge  =>
'hashXXXXXXXXXXXXXX',
                                        },
                                        default =>
'hashXXXXXXXXXXXXXX',
                        };
                 }
}

When I run the class in this way without stages and the package lsb-
release it's installed it works correctly.

class testA
{
        include root_user_private_servers
}

node 'debian-lenny.XXXXX.XXXX' {
        include testA
}

The problem it's that when I run the class with stages it fails with a
dependency cicle.

The class apt_official it set the Debian repos and doesn't "require"
or "include any other class, it doesn't have dependencies.

The class lsb-release install the packages lsb_release, this it's
because I use the facter variable $lsbdistcodename to distinguish
between Debian versions only in the class root_user_private_servers.

The idea it's to setup the Debian repositories first, then install the
lsb_release package and the run all the others manifests.

stage {"first": before=>Stage["second"]}
stage {"second": before=>Stage["main"]}

class { "compulsory_main1": stage=> first}
class compulsory_main1
{
        include apt_official
}

class { "compulsory_main2": stage=> second}
class compulsory_main2
{
        include lsb_release
}

class testA
{
       include root_user_private_servers
}


I've also tried this one:
class testA inherits compulsory_main2 {....}

this one

class testA {
                  include compulsory_main1
                  include compulsory_main2
                  include root_user_private_servers
                  }

and this one

class testA {
                  require compulsory_main1
                  require compulsory_main2
                  include root_user_private_servers
                  }

with no luck,

Can you help me to solve this problem? Thanks in advance.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to