Dear all, I'm trying to do mass update ssh-accounts by ENC Puppet DSL. I found great reference in http://jpmens.net/2011/07/25/external-node-classification-and-data-in-puppet/ from Jan-Piet , if anyone had test it may be could help me in a couple issues.
1) I got "Duplicate definition" error while calling define resource one{ $user_array: } to workaround I change defined resource like define one_user($arr) , so to call it one_user{ 'tit': arr => $res } . Jan-Piet said 'to call my one_user() "function" once for each array element' , It's essencial for the mass load but How to do it ?. 2) Testing are tell me that input parameter class for inline_template() has not hash structure instead it is array. Putting function split in a head of class having unique sense to check for structure is tell me that parameter is an array not expected string variable. Why ? My test , I inserted some comments ## upercase : class updssh( $users ) { $users_array = split($users, '[ ;]') ## NO SENSE , ONLY FOR CHECK $users VARIABLE STRUCTURE notify{'MSG1': message => "$users" } $res = inline_template( ## RETURN ARRAY "<% users.each_with_index do |usr, i| -%> <% usr.each do |k,v| -%> <%= k %>:<%= usr[k]['email'] %>:<%= v['type'] %>:<%= v['key'] %> <% end -%> ; <% end -%>") # Now create an array from that result $users_array = split($res, '[ ;]') ## $res IS AN ARRAY NOT AN STRING VARIABLE !!! #one_user{ $users_array: } ## HOW TO DO IT ?? one_user{ 'tit': ## WORKAROUNT AVOIDING "Duplicate definition" error arr => $res ### SAME RETURN FROM INLINE, } define one_user($arr) { ## $u = split($title, '[:]') $u = split($arr, '[:]') $username = $u[0] $email = $u[1] $type = $u[2] $dd = $u[6] $msg = sprintf('user=%s, email=%s, type=%s , dd=%s', $username, $email, $type, $dd) notify{'MSG': message => "$msg" } } } The ENC data are : --- parameters: {} classes: updssh: users: - ppuser7: type: ssh-rsa user_auth: JOJOXX user_ssh: ppuser7 key: XXLLAVEXX_DE_PRUEBA_UPD_SSH_PARA_PPUSER7 email: ppus...@speedy.com - ppuser8: type: ssh-rsa user_ssh: ppuser8 key: LLAVEXX_DE_PRUEBA_UPD_SSH_PARA_PPUSER8 email: ppus...@speedy.com Any suggestion ?. Thanks in advanced, eduardo. -- 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.