Example ERB template
The following example is taken from the puppetlabs-ntp
module.
# ntp.conf: Managed by puppet. # <% if @tinker == true and (@panic or @stepout) -%> # Enable next tinker options: # panic - keep ntpd from panicking in the event of a large clock skew # when a VM guest is suspended and resumed; # stepout - allow ntpd change offset faster tinker<% if @panic -%> panic <%= @panic %><% end %><% if @stepout -%> stepout <%= @stepout %><% end %> <% end -%> <% if @disable_monitor == true -%> disable monitor <% end -%> <% if @disable_auth == true -%> disable auth <% end -%> <% if @restrict != [] -%> # Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. <% @restrict.flatten.each do |restrict| -%> restrict <%= restrict %> <% end -%> <% end -%> <% if @interfaces != [] -%> # Ignore wildcard interface and only listen on the following specified # interfaces interface ignore wildcard <% @interfaces.flatten.each do |interface| -%> interface listen <%= interface %> <% end -%> <% end -%> <% if @broadcastclient == true -%> broadcastclient <% end -%> # Set up servers for ntpd with next options: # server - IP address or DNS name of upstream NTP server # iburst - allow send sync packages faster if upstream unavailable # prefer - select preferrable server # minpoll - set minimal update frequency # maxpoll - set maximal update frequency <% [@servers].flatten.each do |server| -%> server <%= server %><% if @iburst_enable == true -%> iburst<% end %><% if @preferred_servers.include?(server) -%> prefer<% end %><% if @minpoll -%> minpoll <%= @minpoll %><% end %><% if @maxpoll -%> maxpoll <%= @maxpoll %><% end %> <% end -%> <% if @udlc -%> # Undisciplined Local Clock. This is a fake driver intended for backup # and when no outside source of synchronized time is available. server 127.127.1.0 fudge 127.127.1.0 stratum <%= @udlc_stratum %> restrict 127.127.1.0 <% end -%> # Driftfile. driftfile <%= @driftfile %> <% unless @logfile.nil? -%> # Logfile logfile <%= @logfile %> <% end -%> <% unless @peers.empty? -%> # Peers <% [@peers].flatten.each do |peer| -%> peer <%= peer %> <% end -%> <% end -%> <% if @keys_enable -%> keys <%= @keys_file %> <% unless @keys_trusted.empty? -%> trustedkey <%= @keys_trusted.join(' ') %> <% end -%> <% if @keys_requestkey != '' -%> requestkey <%= @keys_requestkey %> <% end -%> <% if @keys_controlkey != '' -%> controlkey <%= @keys_controlkey %> <% end -%> <% end -%> <% [@fudge].flatten.each do |entry| -%> fudge <%= entry %> <% end -%> <% unless @leapfile.nil? -%> # Leapfile leapfile <%= @leapfile %> <% end -%>