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: ppuser7@speedy.com
- ppuser8:
type: ssh-rsa
user_ssh: ppuser8
key: LLAVEXX_DE_PRUEBA_UPD_SSH_PARA_PPUSER8
email: ppuser8@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+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.
errata for 2) , It should be 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 hash variable. Why ? sorry On 9 jun, 09:48, eduardo <erodr...@gmail.com> wrote:> Dear all, > > I''m trying to do mass update ssh-accounts by ENC Puppet DSL. I found > great reference inhttp://jpmens.net/2011/07/25/external-node-classification-and-data-in... > 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Hi, first of all thanks to Jan-Piet for share it.
My mistake was around shape an inline_template parameter, everything
is ok just deleting linefeeds and spaces characters in it, like this :
-----
$res = inline_template(
"<% users.each do |usr| -%><% 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, ''[;]'')
one_user{ $users_array: }
define one_user() {
$u = split($title, ''[:]'')
-----
This way the inline_template parameter is not readable but it''s the
way to do it.
Regards,
eduardo.
On 9 jun, 10:03, eduardo <erodr...@gmail.com>
wrote:> errata for 2) , It should be
>
> 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 hash
> variable. Why ?
>
> sorry
>
> On 9 jun, 09:48, eduardo <erodr...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Dear all,
>
> > I''m trying to do mass update ssh-accounts by ENC Puppet
DSL. I found
> > great reference
inhttp://jpmens.net/2011/07/25/external-node-classification-and-data-in...
> > 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+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.