class ntp {
  package { ntp: ensure => installed }
}
class ntp::client inherits ntp {
  file { "/etc/ntp.conf":
    source  => "puppet:///ntp/ntp.conf",
    require => Package[ntp],
  }

  file { "/etc/ntp/step-tickers":
    source  => "puppet:///ntp/step-tickers",
    require => Package[ntp],
  }

  service { ntpd:
    ensure     => running,
    hasrestart => true,
    hasstatus  => true,
    subscribe  => [Package[ntp], File["/etc/ntp.conf"], File["/etc/ntp/step-tickers"]],
  }
}

class ntp::server inherits ntp::client {
    File["/etc/ntp.conf"] { source  => "puppet:///ntp/ntp.conf_server", }
    File["/etc/ntp/step-tickers"] { source  => "puppet:///ntp/step-tickers_server", }
}