Hello

I just start to learn puppet. And have follow question. How is it possible 
to override params in define. For example i have follow definition for 
manage devel users:

define users::devel
{
        $l_shell_path = $operatingsystem ? {
                "freebsd" => "/bin/csh",
                "ubuntu" => "/bin/bash"
        }

        $l_sudo_pkg = $operatingsystem ? {
                "freebsd" => "security/sudo",
                "ubuntu" => "sudo"
        }

        $l_etc_path = $operatingsystem ? {
                "freebsd" => "/usr/local/etc/",
                "ubuntu" => "/etc/"
        }

        if !defined(Package["$l_sudo_pkg"])
        {
                package
                {
                        "$l_sudo_pkg":
                                ensure => present
                }
        }

        if !defined(File["${l_etc_path}sudoers.d/devel"])
        {
                file
                {
                        "${l_etc_path}sudoers.d/devel":
                                source => 
"puppet:///modules/users/devel.sudoers.dist",
                                mode => 0440,
                                require => Package["$l_sudo_pkg"];
                }
        }

        if !defined(Group["devel"])
        {
                group
                {
                        "devel":
                                ensure => present;
                }
        }

        if !defined(Users::User_homedir["$name"])
        {
                users::user_homedir
                {
                        "$name" :
                                groups => ["devel"],
                                ensure => "present"
                }
        }
        else
        {
                Users::User_homedir["$name"]
                {
                        groups => ["devel"],
                        ensure => "present"
                }
        }

        if !defined(File["/home/$name/bin"])
        {
                file
                {
                        "/home/$name/bin":
                                ensure => directory;

                        "/home/$name/bin/www":
                                content => template("users/www.dist.erb"),
                                mode => 0555;
                }
        }
}

And follow definition for remove users:

define users::remove
{
        if !defined(Users::User_homedir["$name"])
        {
                users::user_homedir
                {
                        "$name" :
                                ensure => absent;
                }
        }
        else
        {
                Users::User_homedir["$name"]
                {
                        ensure => absent
                }
        }
}


And want to do folow:

node lwd_basenode inherits monitored_node
{
        include users::root
        include users::www

        include freebsd7

        users::admin
        {
                ['ruslan', 'misha']:;
        }

        users::devel
        {
                ['vlad', 'sergeym']:;
        }

        users::remove
        {
                ['ilyash', 'anton', 'georgiysh']:;
        }
}

node "lwd012.some.root.domain" inherits lwd_basenode
{
        include zabbix::nginx
        include zabbix::mysql_replication
        include zabbix::mysql

        class
        {
                "zabbix::memcached":
                        memcachedaddr => "192.168.0.92 11211";
        }

        users::devel
        {
                'anton':;
        }
}


so I have one base node from which all other inherits, where user anton is 
removed. And have one node(lwd012.some.root.domain) which redefines 
behavior  of user anton (on that node this user must be present), But if i 
do so i got follow error:

err: Could not retrieve catalog from remote server: Error 400 on SERVER: 
Only subclasses can override parameters at 
/etc/puppet/modules/users/manifests/devel.pp:62

How can i solve this?

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/q6QWAWf9NYoJ.
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