Silly question:  Why not use https://forge.puppet.com/modules/puppetlabs/ntp  ?
_______________________________________________________
Dan White : [email protected]
“Sometimes I think the surest sign that intelligent life exists elsewhere in 
the universe is that none of it has tried to contact us.” 
Bill Waterson (Calvin & Hobbes)

> On Mar 28, 2023, at 10:30 AM, Laci D <[email protected]> wrote:
> 
> I tried both epp and erb templates.
> 
> This is the manifest file:
> 
> class site::profiles::ntp {
>     $ntp = hiera_hash('ntp')
> 
>     case $::operatingsystem {
>             'freebsd': {
>                file { "/etc/ntp.conf":
>                    ensure  => file,
>                    recurse => true,
>                    purge   => true,
>                    force   => true,
>                    owner   => "root",
>                    group   => 0,
>                    mode    => "0644",
>                    content => template('site/ntp/ntp.conf.epp'),
>                    #content => template('site/ntp/ntp.conf.erb'),
>                }
>                service { 'ntpd':
>                    ensure => 'running',
>                    enable => true,
>                }
>                service { 'ntpdate':
>                    enable => true,
>                }
>             }
>         default: {
> 
>          class { 'ntp':
>                servers => $ntp['servers'],
>          }
> 
>        }
>    }
> }
> 
> 
> The template:
> 
> templates/ntp/ntp.conf.epp
> <% @ntp[’servers’].each { |server| -%>
> server: <%= server %>
> <% } -%>
> 
> And this is the hiera (as of now there is only one ntp server but there'll be 
> more in the future):
> ntp:
>   servers:
>     - 169.254.169.123
> 
> Martin with the latest change I'm getting:
> Error: Could not retrieve catalog from remote server: Error 500 on SERVER: 
> Server Error: Evaluation Error: Error while evaluating a Resource Statement, 
> Evaluation Error: Error while evaluating a Function Call, Failed to parse 
> template site/ntp/ntp.conf.epp:
>   Filepath: /etc/puppetlabs/code/modules/site/templates/ntp/ntp.conf.epp
>   Line: 3
>   Detail: undefined local variable or method `’servers’' for 
> #<Puppet::Parser::TemplateWrapper:0x34a1bb52>
>  (file: /etc/puppetlabs/code/modules/site/manifests/profiles/ntp.pp, line: 
> 14, column: 31) 
> Warning: Not using cache on failed catalog
> Error: Could not retrieve catalog; skipping run
> On Tuesday, March 28, 2023 at 10:08:43 AM UTC-4 Martin Alfke wrote:
>> My example is an epp template.
>> 
>> What name does the variable have? $ntp? And: is this a hash with servers key 
>> set to an array?
>> 
>> In this case your erb (!) template can look like the following:
>> 
>> <% @ntp[’servers’].each { |server| -%>
>> server: <%= server %>
>> <% } -%>
>> 
>> 
>>> On 28. Mar 2023, at 14:37, Laci D <[email protected] <>> wrote:
>>> 
>> 
>>> Thank you Martin!
>>> 
>>> I used your example and I think something is missing.
>>> Since "servers" is under "ntp" in the hiera file (see example in my 
>>> original email) maybe we need to define that in the erb file?
>>> 
>>> 
>>> Error: Could not retrieve catalog from remote server: Error 500 on SERVER: 
>>> Internal Server Error: org.jruby.exceptions.SyntaxError: (SyntaxError) 
>>> /etc/puppetlabs/code/modules/site/templates/ntp/ntp.conf.erb:6: syntax 
>>> error, unexpected tSTRING_BEG
>>> _erbout.<< "server: ".freeze; _erbout.<<((...
>>>            ^
>>> Warning: Not using cache on failed catalog
>>> Error: Could not retrieve catalog; skipping run
>>> 
>>> On Tuesday, March 28, 2023 at 2:57:23 AM UTC-4 Martin Alfke wrote:
>>>> You must iterate as servers is an array:
>>>> 
>>>> <% $servers.each |$server| { -%>
>>>> server: <%= $server %>
>>>> <%- } -%>
>>>> 
>>>> 
>>>>> On 27. Mar 2023, at 22:21, Laci D <[email protected] <>> wrote:
>>>>> 
>>>> 
>>>>> I'm working on defining NTP servers from Hiera.
>>>>> 
>>>>> For Linux servers I have been using puppetlabs-ntp, which has been 
>>>>> working nicely. Now I need to add support for FreeBSD. Above module 
>>>>> doesn't support FreeBSD but I can edit ntp.conf with file resource type. 
>>>>> 
>>>>> This is where things got complicated, file adds extra ["..."] around the 
>>>>> value form hiera, since it's an array. Array type is required for 
>>>>> puppetlabs-ntp
>>>>> Question is how can I get rid of the extra squarely braces and double 
>>>>> quotes?
>>>>> Rather than using a static file I'd like to stick to hiera since the ntp 
>>>>> can very based on datacenter.
>>>>> 
>>>>> /etc/ntp.conf
>>>>> server ["169.254.169.123"]
>>>>> 
>>>>> Desired /etc/ntp.conf
>>>>> server 169.254.169.123
>>>>> 
>>>>> hieradata/site.yaml
>>>>> ntp:
>>>>>   servers:
>>>>>     - 169.254.169.123
>>>>> 
>>>>> templates/ntp/ntp.conf.erb
>>>>> server <%= @ntp['servers'] %>
>>>>> 
>>>> 
>>>>> -- 
>>>>> 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/848044f1-888d-44b3-8098-2c3569eb1608n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/puppet-users/848044f1-888d-44b3-8098-2c3569eb1608n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>> 
>>> 
>>> 
>>> -- 
>>> 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/1d68b2ef-0c4f-425f-a84d-3cc22e6f750an%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/puppet-users/1d68b2ef-0c4f-425f-a84d-3cc22e6f750an%40googlegroups.com?utm_medium=email&utm_source=footer>.
>> 
> 
> 
> -- 
> 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] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/puppet-users/b1ef24bc-7995-469f-b81c-a0f51c4010c9n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/puppet-users/b1ef24bc-7995-469f-b81c-a0f51c4010c9n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
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/129D2FAC-5628-44F5-B1CD-752D90FFAB72%40icloud.com.

Reply via email to