On Monday, January 13, 2014 3:36:25 PM UTC-6, Karolis Pabijanskas wrote:
>
>
>
> Hi list,
>
> I have a define type with parameters like this:
>
> define user (   $username=$title,
>                 $comment='',
>                 $uid='',
>                 $gid=$uid,
>                 $groups=[ 'users',],
>                 $password='',
>                 $shell="/bin/false",
>                 $sudo=false,
>                 $sudo_nopasswd=false, ) { 
> #### actual definition
> }
>
> That gets called by init.pp:
>
> class users ($data) {
>         create_resources(user, $data)
> }
>
> I'm trying to pass a yaml to it:
> user:
>   uid: 500
>   comment: Test user
>   password: PW HASH
>   shell: /bin/bash
>
> Now this works perfectly fine, and the user gets created, but as soon as I 
> try to pass sudo it fails (it does the same for the sudo_nopasswd 
> parameter):
> user:
>   uid: 500
>   comment: Test user
>   password: PW HASH
>   shell: /bin/bash
>   sudo: true
>
> Error: Could not retrieve catalog from remote server: Error 400 on SERVER: 
> Invalid parameter sudo on node puppet.local
>
>

That appears to be telling you that Puppet doesn't think type "user" has a 
parameter named "sudo".  And indeed, the built-in User type doesn't, though 
it does have uid, comment, password, and shell.  Almost certainly, 
create_resources is trying to declare an instance of the built-in User type 
instead of your defined type.  The same might happen if you use an ordinary 
declaration.

You should put your defined type in a module, and refer to it by its 
qualifed name.  Indeed, all classes and defined types you write should go 
into modules.

As an aside, do not confuse Puppet's keyword for declaring a user-defined 
resource type ("define") with the C preprocessor's keyword for defining a 
macro ("#define").  User-defined resource types are bona fide resource 
types, not macros.


John

-- 
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/014ef5fb-b2db-498c-a8c4-e98138ac6368%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to