Sorry, didn't realize it was a hash of hashes. You just need the augeas
resource to have a unique name - entry[$name][hostname] or ipaddress should
work.
IE:
define a_thing {
augeas { 'host_entry': }
}
a_thing { 'a': }
a_thing { 'b': }
Will generate an error like you are seeing.
define a_thing {
augeas { "host_entry_${name}": }
}
a_thing {'a': }
a_thing {'b': }
Will not.
On Fri, Jan 17, 2014 at 1:07 PM, Andrey Kozichev <[email protected]>wrote:
> ah, right you are supplying entire hash in your defined resource. Missed
> it.
>
> If your defined resource would accept: name, iphost and hostname - then
> you can use create_resources to define all 3 entry.
> On 17 Jan 2014 15:21, "Reinaldo Lima" <[email protected]> wrote:
>
>> With "create_resources" the error is:
>>
>> *Invalid parameter hostName on node*
>>
>>
>> And including the entry[name] in the resource name:
>>
>> *Resource title must be a String, not Hash*
>>
>>
>>
>> =(
>>
>> On Friday, January 17, 2014 5:10:16 AM UTC-2, Andrew wrote:
>>>
>>> another option to use create_resources('hostinclude',$netentry)
>>> On 16 Jan 2014 23:47, "Nick Cammorato" <[email protected]> wrote:
>>>
>>>> Your augeas resource is always called hosts_include which is why it's
>>>> doing that. Try including the entry[name] in that resource name.
>>>> On Jan 16, 2014 4:15 PM, "Reinaldo Lima" <[email protected]> wrote:
>>>>
>>>>> Hi Everyone,
>>>>>
>>>>> I'm trying to write a class that put some entries in "/etc/hosts" file
>>>>> as follow below:
>>>>>
>>>>> *class hosts {*
>>>>>
>>>>> * $netentry = {*
>>>>> * host01 => { iphost => '192.168.10.1', hostName =>
>>>>> host01 },*
>>>>> * host02 => { iphost => '192.168.10.2', hostName =>
>>>>> host02 },*
>>>>> * host03 => { iphost => '192.168.10.3', hostName =>
>>>>> host03 },*
>>>>> * }*
>>>>>
>>>>> * define hostsinclude ($entry) {*
>>>>> * augeas { "hosts_include":*
>>>>> * incl => "/etc/hosts",*
>>>>> * lens => "Hosts.lns",*
>>>>> * changes => [*
>>>>> * "set /files/etc/hosts/01/ipaddr
>>>>> $entry[$name]['iphost']",*
>>>>> * "set
>>>>> /files/etc/hosts/01/canonical$entry[$name]['hostName']",*
>>>>> * ],*
>>>>> * onlyif => "match */ipaddr[ . =
>>>>> $entry[$name]['iphost'] ] size == 0"*
>>>>> * }*
>>>>> * }*
>>>>>
>>>>> * hostsinclude { [*
>>>>> * 'host01',*
>>>>> * 'host02',*
>>>>> * 'host03'*
>>>>> * ]:*
>>>>> * entry => $netentry*
>>>>> * }*
>>>>>
>>>>> *}*
>>>>>
>>>>>
>>>>> and, when puppet compiles the manifest, I get the following error:
>>>>>
>>>>> *err: Could not retrieve catalog from remote server: Error 400 on
>>>>> SERVER: Duplicate declaration: Augeas[hosts_include] is already declared
>>>>> in
>>>>> file /puppet/environments/production/modules/checklist/manifests/hosts.pp
>>>>> at line 10; cannot redeclare at
>>>>> /puppet/environments/production/modules/checklist/manifests/hosts.pp:29 on
>>>>> node*
>>>>>
>>>>> Someone can help me?
>>>>>
>>>>> Thanks
>>>>>
>>>>> --
>>>>> 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/fe9040f2-54de-4f9c-9787-4736b37219d9%
>>>>> 40googlegroups.com.
>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>
>>>> --
>>>> 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/CAKJ8awc5X%2B97jtxwbe%3DpjqhjqyuF8S_dR_
>>>> GvAAXM%2BC8t3FC9xA%40mail.gmail.com.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>> --
>> 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/4f31358c-652d-4afc-9919-aae783afa36c%40googlegroups.com
>> .
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
> --
> 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/CACzr%3DFdwj-bmkdUzMoutEBLPMa%2BZA%3Dt7v98COQfT%2Bk%2BjBrUzGg%40mail.gmail.com
> .
>
> For more options, visit https://groups.google.com/groups/opt_out.
>
--
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/CAKJ8awd9TD8aZOdeLa3V2smqQQ6S8EorvQxHS2VF%3D%3DQGJ4v00Q%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.