From 7d6776868eb226bd85372cc1d62c3779b673d25c Mon Sep 17 00:00:00 2001 From: Matt Rogers Date: Thu, 17 Jan 2013 22:57:17 -0600 Subject: Add support for Arch Linux Add test for package name and presence Fix bad package name for Arch Linux Fix missing comment in config template --- manifests/init.pp | 22 ++++++++++++++++++++++ spec/classes/ntp_spec.rb | 20 ++++++++++++++++++++ templates/ntp.conf.archlinux.erb | 24 ++++++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 templates/ntp.conf.archlinux.erb diff --git a/manifests/init.pp b/manifests/init.pp index 543db63..9b9c465 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -10,6 +10,7 @@ # - CentOS 5.4 # - Amazon Linux 2011.09 # - FreeBSD 9.0 +# - Archlinux # # Parameters: # @@ -120,6 +121,27 @@ class ntp($servers='UNSET', $servers_real = $servers } } + + Linux: { + if ($::operatingsystem == 'Archlinux') { + $supported = true + $pkg_name = ['ntp'] + $svc_name = 'ntpd' + $config = '/etc/ntp.conf' + $config_tpl = 'ntp.conf.archlinux.erb' + + if ($servers == 'UNSET') { + $servers_real = [ '0.pool.ntp.org', + '1.pool.ntp.org', + '2.pool.ntp.org' ] + } else { + $servers_real = $servers + } + } else { + fail("The ${module_name} module is not supported on an ${::operatingsystem} system") + } + } + default: { fail("The ${module_name} module is not supported on ${::osfamily} based systems") } diff --git a/spec/classes/ntp_spec.rb b/spec/classes/ntp_spec.rb index 8f41a22..e74f7c1 100644 --- a/spec/classes/ntp_spec.rb +++ b/spec/classes/ntp_spec.rb @@ -88,6 +88,26 @@ describe 'ntp' do end + describe "for operating system Archlinux" do + + let(:params) {{}} + let(:facts) { { :operatingsystem => 'Archlinux', + :osfamily => 'Linux' } } + + it { should contain_service('ntp').with_name('ntpd') } + it { should contain_package('ntp').with_ensure('present') } + + it 'should use the NTP pool servers by default' do + content = param_value(subject, 'file', '/etc/ntp.conf', 'content') + expected_lines = [ + "server 0.pool.ntp.org", + "server 1.pool.ntp.org", + "server 2.pool.ntp.org"] + (content.split("\n") & expected_lines).should == expected_lines + end + end + + ['Debian', 'RedHat','SuSE', 'FreeBSD'].each do |osfamily| describe "for operating system family #{osfamily}" do diff --git a/templates/ntp.conf.archlinux.erb b/templates/ntp.conf.archlinux.erb new file mode 100644 index 0000000..78494e1 --- /dev/null +++ b/templates/ntp.conf.archlinux.erb @@ -0,0 +1,24 @@ +# With the default settings below, ntpd will only synchronize your clock. +# +# For details, see: +# - the ntp.conf man page +# - http://support.ntp.org/bin/view/Support/GettingStarted +# - https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon + +# Associate to public NTP pool servers; see http://www.pool.ntp.org/ +<% [servers_real].flatten.each do |server| -%> +server <%= server %> +<% end -%> + +<% if @restrict -%> +# Only allow read-only access from localhost +restrict default noquery nopeer +restrict 127.0.0.1 +restrict ::1 +<% end -%> + +# Location of drift file +driftfile /var/lib/ntp/ntp.drift + +# NOTE: If you run dhcpcd and have lines like 'restrict' and 'fudge' appearing +# here, be sure to add '-Y -N' to the dhcpcd_ethX variables in /etc/conf.d/net -- cgit v1.2.3