Sync puppet ntp module from upstream
Upstream link to module: https://github.com/puppetlabs/puppetlabs-ntp Upstream SHA commit: 1f519f719552aedc98b6995e42d23201a0286a58 Change-Id: Ib481907044ebd7f4f147ce1a26de5489620904ff Related-Bug: 1298360
This commit is contained in:
parent
ead571ead1
commit
057ef69824
|
@ -1,4 +1,7 @@
|
||||||
pkg/
|
pkg/
|
||||||
Gemfile.lock
|
Gemfile.lock
|
||||||
.rspec_system/
|
vendor/
|
||||||
.*.sw*
|
spec/fixtures/
|
||||||
|
.vagrant/
|
||||||
|
.bundle/
|
||||||
|
coverage/
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
spec/spec_helper.rb:
|
||||||
|
unmanaged: true
|
|
@ -1,31 +1,17 @@
|
||||||
---
|
---
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
language: ruby
|
language: ruby
|
||||||
bundler_args: --without development
|
bundler_args: --without development
|
||||||
script: "bundle exec rake spec SPEC_OPTS='--format documentation'"
|
script: "bundle exec rake validate && bundle exec rake lint && bundle exec rake spec SPEC_OPTS='--format documentation'"
|
||||||
rvm:
|
|
||||||
- 1.8.7
|
|
||||||
- 1.9.3
|
|
||||||
- 2.0.0
|
|
||||||
env:
|
|
||||||
matrix:
|
|
||||||
- PUPPET_GEM_VERSION="~> 2.7.0"
|
|
||||||
- PUPPET_GEM_VERSION="~> 3.0.0"
|
|
||||||
- PUPPET_GEM_VERSION="~> 3.1.0"
|
|
||||||
- PUPPET_GEM_VERSION="~> 3.2.0"
|
|
||||||
matrix:
|
matrix:
|
||||||
exclude:
|
fast_finish: true
|
||||||
- rvm: 1.9.3
|
include:
|
||||||
env: PUPPET_GEM_VERSION="~> 2.7.0"
|
- rvm: 1.8.7
|
||||||
- rvm: 2.0.0
|
env: PUPPET_GEM_VERSION="~> 2.7.0" FACTER_GEM_VERSION="~> 1.6.0"
|
||||||
env: PUPPET_GEM_VERSION="~> 2.7.0"
|
- rvm: 1.8.7
|
||||||
- rvm: 2.0.0
|
env: PUPPET_GEM_VERSION="~> 2.7.0" FACTER_GEM_VERSION="~> 1.7.0"
|
||||||
env: PUPPET_GEM_VERSION="~> 3.0.0"
|
- rvm: 1.9.3
|
||||||
- rvm: 2.0.0
|
env: PUPPET_GEM_VERSION="~> 3.0"
|
||||||
env: PUPPET_GEM_VERSION="~> 3.1.0"
|
- rvm: 2.0.0
|
||||||
- rvm: 1.8.7
|
env: PUPPET_GEM_VERSION="~> 3.0"
|
||||||
env: PUPPET_GEM_VERSION="~> 3.2.0"
|
|
||||||
notifications:
|
notifications:
|
||||||
email: false
|
email: false
|
||||||
|
|
|
@ -1,3 +1,41 @@
|
||||||
|
##2014-11-04 - Supported Release 3.3.0
|
||||||
|
###Summary
|
||||||
|
|
||||||
|
This release adds support for SLES 12.
|
||||||
|
|
||||||
|
####Features
|
||||||
|
- Added support for SLES 12
|
||||||
|
|
||||||
|
##2014-10-02 - Supported Release 3.2.1
|
||||||
|
###Summary
|
||||||
|
|
||||||
|
This is a bug-fix release addressing the security concerns of setting /etc/ntp to mode 0755 recursively.
|
||||||
|
|
||||||
|
####Bugfixes
|
||||||
|
- Do not recursively set ownership/mode of /etc/ntp
|
||||||
|
|
||||||
|
##2014-09-10 - Supported Release 3.2.0
|
||||||
|
###Summary
|
||||||
|
|
||||||
|
This is primarily a feature release. It adds a few new parameters to class `ntp`
|
||||||
|
and adds support for Solaris 11.
|
||||||
|
|
||||||
|
####Features
|
||||||
|
- Add the `$interfaces` parameter to `ntp`
|
||||||
|
- Add support for Solaris 10 and 11
|
||||||
|
- Synchronized files with modulesync
|
||||||
|
- Test updates
|
||||||
|
- Add the `$iburst_enable` parameter to `ntp`
|
||||||
|
|
||||||
|
####Bugfixes
|
||||||
|
- Fixes for strict variables
|
||||||
|
- Remove dependency on stdlib4
|
||||||
|
|
||||||
|
##2014-06-06 - Release 3.1.2
|
||||||
|
###Summary
|
||||||
|
|
||||||
|
This is a supported release. This release fixes a manifest typo.
|
||||||
|
|
||||||
##2014-06-06 - Release 3.1.1
|
##2014-06-06 - Release 3.1.1
|
||||||
###Summary
|
###Summary
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,234 @@
|
||||||
Puppet Labs modules on the Puppet Forge are open projects, and community contributions
|
Checklist (and a short version for the impatient)
|
||||||
are essential for keeping them great. We can’t access the huge number of platforms and
|
=================================================
|
||||||
myriad of hardware, software, and deployment configurations that Puppet is intended to serve.
|
|
||||||
|
|
||||||
We want to keep it as easy as possible to contribute changes so that our modules work
|
* Commits:
|
||||||
in your environment. There are a few guidelines that we need contributors to follow so
|
|
||||||
that we can have a chance of keeping on top of things.
|
- Make commits of logical units.
|
||||||
|
|
||||||
|
- Check for unnecessary whitespace with "git diff --check" before
|
||||||
|
committing.
|
||||||
|
|
||||||
|
- Commit using Unix line endings (check the settings around "crlf" in
|
||||||
|
git-config(1)).
|
||||||
|
|
||||||
|
- Do not check in commented out code or unneeded files.
|
||||||
|
|
||||||
|
- The first line of the commit message should be a short
|
||||||
|
description (50 characters is the soft limit, excluding ticket
|
||||||
|
number(s)), and should skip the full stop.
|
||||||
|
|
||||||
|
- Associate the issue in the message. The first line should include
|
||||||
|
the issue number in the form "(#XXXX) Rest of message".
|
||||||
|
|
||||||
|
- The body should provide a meaningful commit message, which:
|
||||||
|
|
||||||
|
- uses the imperative, present tense: "change", not "changed" or
|
||||||
|
"changes".
|
||||||
|
|
||||||
|
- includes motivation for the change, and contrasts its
|
||||||
|
implementation with the previous behavior.
|
||||||
|
|
||||||
|
- Make sure that you have tests for the bug you are fixing, or
|
||||||
|
feature you are adding.
|
||||||
|
|
||||||
|
- Make sure the test suites passes after your commit:
|
||||||
|
`bundle exec rspec spec/acceptance` More information on [testing](#Testing) below
|
||||||
|
|
||||||
|
- When introducing a new feature, make sure it is properly
|
||||||
|
documented in the README.md
|
||||||
|
|
||||||
|
* Submission:
|
||||||
|
|
||||||
|
* Pre-requisites:
|
||||||
|
|
||||||
|
- Sign the [Contributor License Agreement](https://cla.puppetlabs.com/)
|
||||||
|
|
||||||
|
- Make sure you have a [GitHub account](https://github.com/join)
|
||||||
|
|
||||||
|
- [Create a ticket](http://projects.puppetlabs.com/projects/modules/issues/new), or [watch the ticket](http://projects.puppetlabs.com/projects/modules/issues) you are patching for.
|
||||||
|
|
||||||
|
* Preferred method:
|
||||||
|
|
||||||
|
- Fork the repository on GitHub.
|
||||||
|
|
||||||
|
- Push your changes to a topic branch in your fork of the
|
||||||
|
repository. (the format ticket/1234-short_description_of_change is
|
||||||
|
usually preferred for this project).
|
||||||
|
|
||||||
|
- Submit a pull request to the repository in the puppetlabs
|
||||||
|
organization.
|
||||||
|
|
||||||
|
The long version
|
||||||
|
================
|
||||||
|
|
||||||
|
1. Make separate commits for logically separate changes.
|
||||||
|
|
||||||
|
Please break your commits down into logically consistent units
|
||||||
|
which include new or changed tests relevant to the rest of the
|
||||||
|
change. The goal of doing this is to make the diff easier to
|
||||||
|
read for whoever is reviewing your code. In general, the easier
|
||||||
|
your diff is to read, the more likely someone will be happy to
|
||||||
|
review it and get it into the code base.
|
||||||
|
|
||||||
|
If you are going to refactor a piece of code, please do so as a
|
||||||
|
separate commit from your feature or bug fix changes.
|
||||||
|
|
||||||
|
We also really appreciate changes that include tests to make
|
||||||
|
sure the bug is not re-introduced, and that the feature is not
|
||||||
|
accidentally broken.
|
||||||
|
|
||||||
|
Describe the technical detail of the change(s). If your
|
||||||
|
description starts to get too long, that is a good sign that you
|
||||||
|
probably need to split up your commit into more finely grained
|
||||||
|
pieces.
|
||||||
|
|
||||||
|
Commits which plainly describe the things which help
|
||||||
|
reviewers check the patch and future developers understand the
|
||||||
|
code are much more likely to be merged in with a minimum of
|
||||||
|
bike-shedding or requested changes. Ideally, the commit message
|
||||||
|
would include information, and be in a form suitable for
|
||||||
|
inclusion in the release notes for the version of Puppet that
|
||||||
|
includes them.
|
||||||
|
|
||||||
|
Please also check that you are not introducing any trailing
|
||||||
|
whitespace or other "whitespace errors". You can do this by
|
||||||
|
running "git diff --check" on your changes before you commit.
|
||||||
|
|
||||||
|
2. Sign the Contributor License Agreement
|
||||||
|
|
||||||
|
Before we can accept your changes, we do need a signed Puppet
|
||||||
|
Labs Contributor License Agreement (CLA).
|
||||||
|
|
||||||
|
You can access the CLA via the [Contributor License Agreement link](https://cla.puppetlabs.com/)
|
||||||
|
|
||||||
|
If you have any questions about the CLA, please feel free to
|
||||||
|
contact Puppet Labs via email at cla-submissions@puppetlabs.com.
|
||||||
|
|
||||||
|
3. Sending your patches
|
||||||
|
|
||||||
|
To submit your changes via a GitHub pull request, we _highly_
|
||||||
|
recommend that you have them on a topic branch, instead of
|
||||||
|
directly on "master".
|
||||||
|
It makes things much easier to keep track of, especially if
|
||||||
|
you decide to work on another thing before your first change
|
||||||
|
is merged in.
|
||||||
|
|
||||||
|
GitHub has some pretty good
|
||||||
|
[general documentation](http://help.github.com/) on using
|
||||||
|
their site. They also have documentation on
|
||||||
|
[creating pull requests](http://help.github.com/send-pull-requests/).
|
||||||
|
|
||||||
|
In general, after pushing your topic branch up to your
|
||||||
|
repository on GitHub, you can switch to the branch in the
|
||||||
|
GitHub UI and click "Pull Request" towards the top of the page
|
||||||
|
in order to open a pull request.
|
||||||
|
|
||||||
|
|
||||||
|
4. Update the related GitHub issue.
|
||||||
|
|
||||||
|
If there is a GitHub issue associated with the change you
|
||||||
|
submitted, then you should update the ticket to include the
|
||||||
|
location of your branch, along with any other commentary you
|
||||||
|
may wish to make.
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
Getting Started
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Our puppet modules provide [`Gemfile`](./Gemfile)s which can tell a ruby
|
||||||
|
package manager such as [bundler](http://bundler.io/) what Ruby packages,
|
||||||
|
or Gems, are required to build, develop, and test this software.
|
||||||
|
|
||||||
|
Please make sure you have [bundler installed](http://bundler.io/#getting-started)
|
||||||
|
on your system, then use it to install all dependencies needed for this project,
|
||||||
|
by running
|
||||||
|
|
||||||
|
```shell
|
||||||
|
% bundle install
|
||||||
|
Fetching gem metadata from https://rubygems.org/........
|
||||||
|
Fetching gem metadata from https://rubygems.org/..
|
||||||
|
Using rake (10.1.0)
|
||||||
|
Using builder (3.2.2)
|
||||||
|
-- 8><-- many more --><8 --
|
||||||
|
Using rspec-system-puppet (2.2.0)
|
||||||
|
Using serverspec (0.6.3)
|
||||||
|
Using rspec-system-serverspec (1.0.0)
|
||||||
|
Using bundler (1.3.5)
|
||||||
|
Your bundle is complete!
|
||||||
|
Use `bundle show [gemname]` to see where a bundled gem is installed.
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE some systems may require you to run this command with sudo.
|
||||||
|
|
||||||
|
If you already have those gems installed, make sure they are up-to-date:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
% bundle update
|
||||||
|
```
|
||||||
|
|
||||||
|
With all dependencies in place and up-to-date we can now run the tests:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
% rake spec
|
||||||
|
```
|
||||||
|
|
||||||
|
This will execute all the [rspec tests](http://rspec-puppet.com/) tests
|
||||||
|
under [spec/defines](./spec/defines), [spec/classes](./spec/classes),
|
||||||
|
and so on. rspec tests may have the same kind of dependencies as the
|
||||||
|
module they are testing. While the module defines in its [Modulefile](./Modulefile),
|
||||||
|
rspec tests define them in [.fixtures.yml](./fixtures.yml).
|
||||||
|
|
||||||
|
Some puppet modules also come with [beaker](https://github.com/puppetlabs/beaker)
|
||||||
|
tests. These tests spin up a virtual machine under
|
||||||
|
[VirtualBox](https://www.virtualbox.org/)) with, controlling it with
|
||||||
|
[Vagrant](http://www.vagrantup.com/) to actually simulate scripted test
|
||||||
|
scenarios. In order to run these, you will need both of those tools
|
||||||
|
installed on your system.
|
||||||
|
|
||||||
|
You can run them by issuing the following command
|
||||||
|
|
||||||
|
```shell
|
||||||
|
% rake spec_clean
|
||||||
|
% rspec spec/acceptance
|
||||||
|
```
|
||||||
|
|
||||||
|
This will now download a pre-fabricated image configured in the [default node-set](./spec/acceptance/nodesets/default.yml),
|
||||||
|
install puppet, copy this module and install its dependencies per [spec/spec_helper_acceptance.rb](./spec/spec_helper_acceptance.rb)
|
||||||
|
and then run all the tests under [spec/acceptance](./spec/acceptance).
|
||||||
|
|
||||||
|
Writing Tests
|
||||||
|
-------------
|
||||||
|
|
||||||
|
XXX getting started writing tests.
|
||||||
|
|
||||||
|
If you have commit access to the repository
|
||||||
|
===========================================
|
||||||
|
|
||||||
|
Even if you have commit access to the repository, you will still need to
|
||||||
|
go through the process above, and have someone else review and merge
|
||||||
|
in your changes. The rule is that all changes must be reviewed by a
|
||||||
|
developer on the project (that did not write the code) to ensure that
|
||||||
|
all changes go through a code review process.
|
||||||
|
|
||||||
|
Having someone other than the author of the topic branch recorded as
|
||||||
|
performing the merge is the record that they performed the code
|
||||||
|
review.
|
||||||
|
|
||||||
|
|
||||||
|
Additional Resources
|
||||||
|
====================
|
||||||
|
|
||||||
|
* [Getting additional help](http://projects.puppetlabs.com/projects/puppet/wiki/Getting_Help)
|
||||||
|
|
||||||
|
* [Writing tests](http://projects.puppetlabs.com/projects/puppet/wiki/Development_Writing_Tests)
|
||||||
|
|
||||||
|
* [Patchwork](https://patchwork.puppetlabs.com)
|
||||||
|
|
||||||
|
* [Contributor License Agreement](https://projects.puppetlabs.com/contributor_licenses/sign)
|
||||||
|
|
||||||
|
* [General GitHub documentation](http://help.github.com/)
|
||||||
|
|
||||||
|
* [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
|
||||||
|
|
||||||
You can read the complete module contribution guide [on the Puppet Labs wiki.](http://projects.puppetlabs.com/projects/module-site/wiki/Module_contributing)
|
|
||||||
|
|
|
@ -2,12 +2,19 @@ source ENV['GEM_SOURCE'] || "https://rubygems.org"
|
||||||
|
|
||||||
group :development, :test do
|
group :development, :test do
|
||||||
gem 'rake', :require => false
|
gem 'rake', :require => false
|
||||||
|
gem 'rspec-puppet', :require => false
|
||||||
gem 'puppetlabs_spec_helper', :require => false
|
gem 'puppetlabs_spec_helper', :require => false
|
||||||
gem 'puppet-lint', :require => false
|
|
||||||
gem 'serverspec', :require => false
|
gem 'serverspec', :require => false
|
||||||
gem 'beaker', :require => false
|
gem 'puppet-lint', :require => false
|
||||||
gem 'beaker-rspec', :require => false
|
gem 'beaker-rspec','>=2.2.0', :require => false
|
||||||
gem 'specinfra', '>=0.7.0'
|
gem 'pry', :require => false
|
||||||
|
gem 'simplecov', :require => false
|
||||||
|
end
|
||||||
|
|
||||||
|
if facterversion = ENV['FACTER_GEM_VERSION']
|
||||||
|
gem 'facter', facterversion, :require => false
|
||||||
|
else
|
||||||
|
gem 'facter', :require => false
|
||||||
end
|
end
|
||||||
|
|
||||||
if puppetversion = ENV['PUPPET_GEM_VERSION']
|
if puppetversion = ENV['PUPPET_GEM_VERSION']
|
||||||
|
|
|
@ -68,6 +68,17 @@ class { '::ntp':
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
###I only want to listen on specific interfaces, not on 0.0.0.0
|
||||||
|
|
||||||
|
Restricting this is especially useful on Openstack nodes which may have numerous virtual interfaces.
|
||||||
|
|
||||||
|
```puppet
|
||||||
|
class { '::ntp':
|
||||||
|
servers => [ 'ntp1.corp.com', 'ntp2.corp.com' ],
|
||||||
|
interfaces => ['127.0.0.1', '1.2.3.4']
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
###I'd like to opt out of having the service controlled; we use another tool for that.
|
###I'd like to opt out of having the service controlled; we use another tool for that.
|
||||||
|
|
||||||
```puppet
|
```puppet
|
||||||
|
@ -128,6 +139,14 @@ Disables monitoring of ntp.
|
||||||
|
|
||||||
Sets the location of the drift file for ntp.
|
Sets the location of the drift file for ntp.
|
||||||
|
|
||||||
|
####`iburst_enable`
|
||||||
|
|
||||||
|
Set the iburst option in the ntp configuration. If enabled the option is set for every ntp peer.
|
||||||
|
|
||||||
|
####`interfaces`
|
||||||
|
|
||||||
|
Sets the list of interfaces NTP will listen on. This parameter must be an array.
|
||||||
|
|
||||||
####`keys_controlkey`
|
####`keys_controlkey`
|
||||||
|
|
||||||
The key to use as the control key.
|
The key to use as the control key.
|
||||||
|
@ -199,17 +218,19 @@ status as a virtual machine.
|
||||||
|
|
||||||
##Limitations
|
##Limitations
|
||||||
|
|
||||||
This module has been built on and tested against Puppet 2.7 and higher.
|
This module has been built on and tested against Puppet 3.
|
||||||
|
|
||||||
The module has been tested on:
|
The module has been tested on:
|
||||||
|
|
||||||
* RedHat Enterprise Linux 5/6
|
* RedHat Enterprise Linux 5/6/7
|
||||||
|
* CentOS 5/6/7
|
||||||
|
* Oracle Enterprise Linux 5/6/7
|
||||||
|
* Scientific Linux 5/6/7
|
||||||
|
* SLES 10SP4/11SP1/12
|
||||||
* Debian 6/7
|
* Debian 6/7
|
||||||
* CentOS 5/6
|
* Ubuntu 10.04/12.04/14.04
|
||||||
* Ubuntu 12.04
|
* Solaris 11
|
||||||
* Gentoo
|
* AIX 5.3/6.1/7.1
|
||||||
* Arch Linux
|
|
||||||
* FreeBSD
|
|
||||||
|
|
||||||
Testing on other platforms has been light and cannot be guaranteed.
|
Testing on other platforms has been light and cannot be guaranteed.
|
||||||
|
|
||||||
|
|
|
@ -1 +1,10 @@
|
||||||
require 'puppetlabs_spec_helper/rake_tasks'
|
require 'puppetlabs_spec_helper/rake_tasks'
|
||||||
|
require 'puppet-lint/tasks/puppet-lint'
|
||||||
|
|
||||||
|
PuppetLint.configuration.fail_on_warnings
|
||||||
|
PuppetLint.configuration.send('disable_80chars')
|
||||||
|
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
|
||||||
|
PuppetLint.configuration.send('disable_class_parameter_defaults')
|
||||||
|
PuppetLint.configuration.send('disable_documentation')
|
||||||
|
PuppetLint.configuration.send('disable_single_quote_string_with_variables')
|
||||||
|
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
module Puppet::Parser::Functions
|
||||||
|
newfunction(:ntp_dirname, :type => :rvalue, :doc => <<-EOS
|
||||||
|
Returns the dirname of a path.
|
||||||
|
EOS
|
||||||
|
) do |arguments|
|
||||||
|
|
||||||
|
raise(Puppet::ParseError, "ntp_dirname(): Wrong number of arguments " +
|
||||||
|
"given (#{arguments.size} for 1)") if arguments.size < 1
|
||||||
|
|
||||||
|
path = arguments[0]
|
||||||
|
return File.dirname(path)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# vim: set ts=2 sw=2 et :
|
|
@ -2,13 +2,12 @@
|
||||||
class ntp::config inherits ntp {
|
class ntp::config inherits ntp {
|
||||||
|
|
||||||
if $keys_enable {
|
if $keys_enable {
|
||||||
$directory = dirname($keys_file)
|
$directory = ntp_dirname($keys_file)
|
||||||
file { $directory:
|
file { $directory:
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
owner => 0,
|
owner => 0,
|
||||||
group => 0,
|
group => 0,
|
||||||
mode => '0755',
|
mode => '0755',
|
||||||
recurse => true,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ class ntp (
|
||||||
$disable_monitor = $ntp::params::disable_monitor,
|
$disable_monitor = $ntp::params::disable_monitor,
|
||||||
$driftfile = $ntp::params::driftfile,
|
$driftfile = $ntp::params::driftfile,
|
||||||
$logfile = $ntp::params::logfile,
|
$logfile = $ntp::params::logfile,
|
||||||
|
$iburst_enable = $ntp::params::iburst_enable,
|
||||||
$keys_enable = $ntp::params::keys_enable,
|
$keys_enable = $ntp::params::keys_enable,
|
||||||
$keys_file = $ntp::params::keys_file,
|
$keys_file = $ntp::params::keys_file,
|
||||||
$keys_controlkey = $ntp::params::keys_controlkey,
|
$keys_controlkey = $ntp::params::keys_controlkey,
|
||||||
|
@ -15,6 +16,7 @@ class ntp (
|
||||||
$panic = $ntp::params::panic,
|
$panic = $ntp::params::panic,
|
||||||
$preferred_servers = $ntp::params::preferred_servers,
|
$preferred_servers = $ntp::params::preferred_servers,
|
||||||
$restrict = $ntp::params::restrict,
|
$restrict = $ntp::params::restrict,
|
||||||
|
$interfaces = $ntp::params::interfaces,
|
||||||
$servers = $ntp::params::servers,
|
$servers = $ntp::params::servers,
|
||||||
$service_enable = $ntp::params::service_enable,
|
$service_enable = $ntp::params::service_enable,
|
||||||
$service_ensure = $ntp::params::service_ensure,
|
$service_ensure = $ntp::params::service_ensure,
|
||||||
|
@ -28,6 +30,7 @@ class ntp (
|
||||||
validate_bool($disable_monitor)
|
validate_bool($disable_monitor)
|
||||||
validate_absolute_path($driftfile)
|
validate_absolute_path($driftfile)
|
||||||
if $logfile { validate_absolute_path($logfile) }
|
if $logfile { validate_absolute_path($logfile) }
|
||||||
|
validate_bool($iburst_enable)
|
||||||
validate_bool($keys_enable)
|
validate_bool($keys_enable)
|
||||||
validate_re($keys_controlkey, ['^\d+$', ''])
|
validate_re($keys_controlkey, ['^\d+$', ''])
|
||||||
validate_re($keys_requestkey, ['^\d+$', ''])
|
validate_re($keys_requestkey, ['^\d+$', ''])
|
||||||
|
@ -37,6 +40,7 @@ class ntp (
|
||||||
validate_bool($panic)
|
validate_bool($panic)
|
||||||
validate_array($preferred_servers)
|
validate_array($preferred_servers)
|
||||||
validate_array($restrict)
|
validate_array($restrict)
|
||||||
|
validate_array($interfaces)
|
||||||
validate_array($servers)
|
validate_array($servers)
|
||||||
validate_bool($service_enable)
|
validate_bool($service_enable)
|
||||||
validate_string($service_ensure)
|
validate_string($service_ensure)
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
#
|
#
|
||||||
class ntp::install inherits ntp {
|
class ntp::install inherits ntp {
|
||||||
|
|
||||||
package { 'ntp':
|
package { $package_name:
|
||||||
ensure => $package_ensure,
|
ensure => $package_ensure,
|
||||||
name => $package_name,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,14 +7,16 @@ class ntp::params {
|
||||||
$keys_controlkey = ''
|
$keys_controlkey = ''
|
||||||
$keys_requestkey = ''
|
$keys_requestkey = ''
|
||||||
$keys_trusted = []
|
$keys_trusted = []
|
||||||
|
$logfile = undef
|
||||||
$package_ensure = 'present'
|
$package_ensure = 'present'
|
||||||
$preferred_servers = []
|
$preferred_servers = []
|
||||||
$service_enable = true
|
$service_enable = true
|
||||||
$service_ensure = 'running'
|
$service_ensure = 'running'
|
||||||
$service_manage = true
|
$service_manage = true
|
||||||
$udlc = false
|
$udlc = false
|
||||||
|
$interfaces = []
|
||||||
|
|
||||||
# On virtual machines allow large clock skews.
|
# On virtual machines allow large clock skews.
|
||||||
$panic = str2bool($::is_virtual) ? {
|
$panic = str2bool($::is_virtual) ? {
|
||||||
true => false,
|
true => false,
|
||||||
default => true,
|
default => true,
|
||||||
|
@ -28,58 +30,81 @@ class ntp::params {
|
||||||
|
|
||||||
case $::osfamily {
|
case $::osfamily {
|
||||||
'AIX': {
|
'AIX': {
|
||||||
$keys_file = '/etc/ntp.keys'
|
$config = $default_config
|
||||||
$driftfile = '/etc/ntp.drift'
|
$keys_file = '/etc/ntp.keys'
|
||||||
$package_name = [ 'bos.net.tcp.client' ]
|
$driftfile = '/etc/ntp.drift'
|
||||||
$restrict = [
|
$package_name = [ 'bos.net.tcp.client' ]
|
||||||
|
$restrict = [
|
||||||
'default nomodify notrap nopeer noquery',
|
'default nomodify notrap nopeer noquery',
|
||||||
'127.0.0.1',
|
'127.0.0.1',
|
||||||
]
|
]
|
||||||
$service_name = 'xntpd'
|
$service_name = 'xntpd'
|
||||||
$servers = [
|
$iburst_enable = true
|
||||||
'0.debian.pool.ntp.org iburst',
|
$servers = [
|
||||||
'1.debian.pool.ntp.org iburst',
|
'0.debian.pool.ntp.org',
|
||||||
'2.debian.pool.ntp.org iburst',
|
'1.debian.pool.ntp.org',
|
||||||
'3.debian.pool.ntp.org iburst',
|
'2.debian.pool.ntp.org',
|
||||||
|
'3.debian.pool.ntp.org',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
'Debian': {
|
'Debian': {
|
||||||
$restrict = [
|
$config = $default_config
|
||||||
|
$keys_file = $default_keys_file
|
||||||
|
$driftfile = $default_driftfile
|
||||||
|
$package_name = $default_package_name
|
||||||
|
$restrict = [
|
||||||
'default kod nomodify notrap nopeer noquery',
|
'default kod nomodify notrap nopeer noquery',
|
||||||
'-6 default kod nomodify notrap nopeer noquery',
|
'-6 default kod nomodify notrap nopeer noquery',
|
||||||
'127.0.0.1',
|
'127.0.0.1',
|
||||||
'-6 ::1',
|
'-6 ::1',
|
||||||
]
|
]
|
||||||
$service_name = 'ntp'
|
$service_name = 'ntp'
|
||||||
|
$iburst_enable = true
|
||||||
$servers = [
|
$servers = [
|
||||||
'0.debian.pool.ntp.org iburst',
|
'0.debian.pool.ntp.org',
|
||||||
'1.debian.pool.ntp.org iburst',
|
'1.debian.pool.ntp.org',
|
||||||
'2.debian.pool.ntp.org iburst',
|
'2.debian.pool.ntp.org',
|
||||||
'3.debian.pool.ntp.org iburst',
|
'3.debian.pool.ntp.org',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
'RedHat': {
|
'RedHat': {
|
||||||
$restrict = [
|
$config = $default_config
|
||||||
|
$keys_file = $default_keys_file
|
||||||
|
$driftfile = $default_driftfile
|
||||||
|
$package_name = $default_package_name
|
||||||
|
$service_name = $default_service_name
|
||||||
|
$restrict = [
|
||||||
'default kod nomodify notrap nopeer noquery',
|
'default kod nomodify notrap nopeer noquery',
|
||||||
'-6 default kod nomodify notrap nopeer noquery',
|
'-6 default kod nomodify notrap nopeer noquery',
|
||||||
'127.0.0.1',
|
'127.0.0.1',
|
||||||
'-6 ::1',
|
'-6 ::1',
|
||||||
]
|
]
|
||||||
|
$iburst_enable = false
|
||||||
$servers = [
|
$servers = [
|
||||||
'0.centos.pool.ntp.org',
|
'0.centos.pool.ntp.org',
|
||||||
'1.centos.pool.ntp.org',
|
'1.centos.pool.ntp.org',
|
||||||
'2.centos.pool.ntp.org',
|
'2.centos.pool.ntp.org',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
'SuSE': {
|
'Suse': {
|
||||||
|
if $::operatingsystem == 'SLES' and $::operatingsystemmajrelease == '12'
|
||||||
|
{
|
||||||
|
$service_name = 'ntpd'
|
||||||
|
$keys_file = '/etc/ntp.keys'
|
||||||
|
} else{
|
||||||
|
$service_name = 'ntp'
|
||||||
|
$keys_file = $default_keys_file
|
||||||
|
}
|
||||||
|
$config = $default_config
|
||||||
$driftfile = '/var/lib/ntp/drift/ntp.drift'
|
$driftfile = '/var/lib/ntp/drift/ntp.drift'
|
||||||
$restrict = [
|
$package_name = $default_package_name
|
||||||
|
$restrict = [
|
||||||
'default kod nomodify notrap nopeer noquery',
|
'default kod nomodify notrap nopeer noquery',
|
||||||
'-6 default kod nomodify notrap nopeer noquery',
|
'-6 default kod nomodify notrap nopeer noquery',
|
||||||
'127.0.0.1',
|
'127.0.0.1',
|
||||||
'-6 ::1',
|
'-6 ::1',
|
||||||
]
|
]
|
||||||
$service_name = 'ntp'
|
$iburst_enable = false
|
||||||
$servers = [
|
$servers = [
|
||||||
'0.opensuse.pool.ntp.org',
|
'0.opensuse.pool.ntp.org',
|
||||||
'1.opensuse.pool.ntp.org',
|
'1.opensuse.pool.ntp.org',
|
||||||
|
@ -88,43 +113,81 @@ class ntp::params {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
'FreeBSD': {
|
'FreeBSD': {
|
||||||
|
$config = $default_config
|
||||||
$driftfile = '/var/db/ntpd.drift'
|
$driftfile = '/var/db/ntpd.drift'
|
||||||
|
$keys_file = $default_keys_file
|
||||||
$package_name = ['net/ntp']
|
$package_name = ['net/ntp']
|
||||||
$restrict = [
|
$restrict = [
|
||||||
'default kod nomodify notrap nopeer noquery',
|
'default kod nomodify notrap nopeer noquery',
|
||||||
'-6 default kod nomodify notrap nopeer noquery',
|
'-6 default kod nomodify notrap nopeer noquery',
|
||||||
'127.0.0.1',
|
'127.0.0.1',
|
||||||
'-6 ::1',
|
'-6 ::1',
|
||||||
]
|
]
|
||||||
|
$service_name = $default_service_name
|
||||||
|
$iburst_enable = true
|
||||||
$servers = [
|
$servers = [
|
||||||
'0.freebsd.pool.ntp.org iburst maxpoll 9',
|
'0.freebsd.pool.ntp.org maxpoll 9',
|
||||||
'1.freebsd.pool.ntp.org iburst maxpoll 9',
|
'1.freebsd.pool.ntp.org maxpoll 9',
|
||||||
'2.freebsd.pool.ntp.org iburst maxpoll 9',
|
'2.freebsd.pool.ntp.org maxpoll 9',
|
||||||
'3.freebsd.pool.ntp.org iburst maxpoll 9',
|
'3.freebsd.pool.ntp.org maxpoll 9',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
'Archlinux': {
|
'Archlinux': {
|
||||||
$restrict = [
|
$config = $default_config
|
||||||
|
$keys_file = $default_keys_file
|
||||||
|
$driftfile = $default_driftfile
|
||||||
|
$package_name = $default_package_name
|
||||||
|
$service_name = $default_service_name
|
||||||
|
$restrict = [
|
||||||
'default kod nomodify notrap nopeer noquery',
|
'default kod nomodify notrap nopeer noquery',
|
||||||
'-6 default kod nomodify notrap nopeer noquery',
|
'-6 default kod nomodify notrap nopeer noquery',
|
||||||
'127.0.0.1',
|
'127.0.0.1',
|
||||||
'-6 ::1',
|
'-6 ::1',
|
||||||
]
|
]
|
||||||
|
$iburst_enable = false
|
||||||
$servers = [
|
$servers = [
|
||||||
'0.pool.ntp.org',
|
'0.pool.ntp.org',
|
||||||
'1.pool.ntp.org',
|
'1.pool.ntp.org',
|
||||||
'2.pool.ntp.org',
|
'2.pool.ntp.org',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
# Gentoo was added as its own $::osfamily in Facter 1.7.0
|
'Solaris': {
|
||||||
'Gentoo': {
|
$config = '/etc/inet/ntp.conf'
|
||||||
$package_name = ['net-misc/ntp']
|
$driftfile = '/var/ntp/ntp.drift'
|
||||||
$restrict = [
|
$keys_file = '/etc/inet/ntp.keys'
|
||||||
|
$package_name = $::operatingsystemrelease ? {
|
||||||
|
/^(5\.10|10|10_u\d+)$/ => [ 'SUNWntpr', 'SUNWntpu' ],
|
||||||
|
/^(5\.11|11|11\.\d+)$/ => [ 'service/network/ntp' ]
|
||||||
|
}
|
||||||
|
$restrict = [
|
||||||
'default kod nomodify notrap nopeer noquery',
|
'default kod nomodify notrap nopeer noquery',
|
||||||
'-6 default kod nomodify notrap nopeer noquery',
|
'-6 default kod nomodify notrap nopeer noquery',
|
||||||
'127.0.0.1',
|
'127.0.0.1',
|
||||||
'-6 ::1',
|
'-6 ::1',
|
||||||
]
|
]
|
||||||
|
$service_name = 'network/ntp'
|
||||||
|
$iburst_enable = false
|
||||||
|
$servers = [
|
||||||
|
'0.pool.ntp.org',
|
||||||
|
'1.pool.ntp.org',
|
||||||
|
'2.pool.ntp.org',
|
||||||
|
'3.pool.ntp.org',
|
||||||
|
]
|
||||||
|
}
|
||||||
|
# Gentoo was added as its own $::osfamily in Facter 1.7.0
|
||||||
|
'Gentoo': {
|
||||||
|
$config = $default_config
|
||||||
|
$keys_file = $default_keys_file
|
||||||
|
$driftfile = $default_driftfile
|
||||||
|
$package_name = ['net-misc/ntp']
|
||||||
|
$service_name = $default_service_name
|
||||||
|
$restrict = [
|
||||||
|
'default kod nomodify notrap nopeer noquery',
|
||||||
|
'-6 default kod nomodify notrap nopeer noquery',
|
||||||
|
'127.0.0.1',
|
||||||
|
'-6 ::1',
|
||||||
|
]
|
||||||
|
$iburst_enable = false
|
||||||
$servers = [
|
$servers = [
|
||||||
'0.gentoo.pool.ntp.org',
|
'0.gentoo.pool.ntp.org',
|
||||||
'1.gentoo.pool.ntp.org',
|
'1.gentoo.pool.ntp.org',
|
||||||
|
@ -133,17 +196,22 @@ class ntp::params {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
'Linux': {
|
'Linux': {
|
||||||
# Account for distributions that don't have $::osfamily specific settings.
|
# Account for distributions that don't have $::osfamily specific settings.
|
||||||
# Before Facter 1.7.0 Gentoo did not have its own $::osfamily
|
# Before Facter 1.7.0 Gentoo did not have its own $::osfamily
|
||||||
case $::operatingsystem {
|
case $::operatingsystem {
|
||||||
'Gentoo': {
|
'Gentoo': {
|
||||||
|
$config = $default_config
|
||||||
|
$keys_file = $default_keys_file
|
||||||
|
$driftfile = $default_driftfile
|
||||||
|
$service_name = $default_service_name
|
||||||
$package_name = ['net-misc/ntp']
|
$package_name = ['net-misc/ntp']
|
||||||
$restrict = [
|
$restrict = [
|
||||||
'default kod nomodify notrap nopeer noquery',
|
'default kod nomodify notrap nopeer noquery',
|
||||||
'-6 default kod nomodify notrap nopeer noquery',
|
'-6 default kod nomodify notrap nopeer noquery',
|
||||||
'127.0.0.1',
|
'127.0.0.1',
|
||||||
'-6 ::1',
|
'-6 ::1',
|
||||||
]
|
]
|
||||||
|
$iburst_enable = false
|
||||||
$servers = [
|
$servers = [
|
||||||
'0.gentoo.pool.ntp.org',
|
'0.gentoo.pool.ntp.org',
|
||||||
'1.gentoo.pool.ntp.org',
|
'1.gentoo.pool.ntp.org',
|
||||||
|
@ -160,23 +228,4 @@ class ntp::params {
|
||||||
fail("The ${module_name} module is not supported on an ${::osfamily} based system.")
|
fail("The ${module_name} module is not supported on an ${::osfamily} based system.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if $config == undef {
|
|
||||||
$config = $default_config
|
|
||||||
}
|
|
||||||
if $keys_file == undef {
|
|
||||||
$keys_file = $default_keys_file
|
|
||||||
}
|
|
||||||
if $drfitfile == undef {
|
|
||||||
$driftfile = $default_driftfile
|
|
||||||
}
|
|
||||||
if $package_name == undef {
|
|
||||||
$package_name = $default_package_name
|
|
||||||
}
|
|
||||||
if $service_name == undef {
|
|
||||||
$service_name = $default_service_name
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
{
|
||||||
|
"name": "puppetlabs-ntp",
|
||||||
|
"version": "3.3.0",
|
||||||
|
"author": "Puppet Labs",
|
||||||
|
"summary": "NTP Module",
|
||||||
|
"license": "Apache Version 2.0",
|
||||||
|
"source": "https://github.com/puppetlabs/puppetlabs-ntp",
|
||||||
|
"project_page": "https://github.com/puppetlabs/puppetlabs-ntp",
|
||||||
|
"issues_url": "https://tickets.puppetlabs.com/browse/MODULES",
|
||||||
|
"operatingsystem_support": [
|
||||||
|
{
|
||||||
|
"operatingsystem": "RedHat",
|
||||||
|
"operatingsystemrelease": [
|
||||||
|
"5",
|
||||||
|
"6",
|
||||||
|
"7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"operatingsystem": "CentOS",
|
||||||
|
"operatingsystemrelease": [
|
||||||
|
"5",
|
||||||
|
"6",
|
||||||
|
"7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"operatingsystem": "OracleLinux",
|
||||||
|
"operatingsystemrelease": [
|
||||||
|
"5",
|
||||||
|
"6",
|
||||||
|
"7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"operatingsystem": "Scientific",
|
||||||
|
"operatingsystemrelease": [
|
||||||
|
"5",
|
||||||
|
"6",
|
||||||
|
"7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"operatingsystem": "SLES",
|
||||||
|
"operatingsystemrelease": [
|
||||||
|
"10 SP4",
|
||||||
|
"11 SP1",
|
||||||
|
"12"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"operatingsystem": "Debian",
|
||||||
|
"operatingsystemrelease": [
|
||||||
|
"6",
|
||||||
|
"7"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"operatingsystem": "Ubuntu",
|
||||||
|
"operatingsystemrelease": [
|
||||||
|
"10.04",
|
||||||
|
"12.04",
|
||||||
|
"14.04"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"operatingsystem": "Solaris",
|
||||||
|
"operatingsystemrelease": [
|
||||||
|
"11"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"operatingsystem": "AIX",
|
||||||
|
"operatingsystemrelease": [
|
||||||
|
"5.3",
|
||||||
|
"6.1",
|
||||||
|
"7.1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"requirements": [
|
||||||
|
{
|
||||||
|
"name": "pe",
|
||||||
|
"version_requirement": "3.x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "puppet",
|
||||||
|
"version_requirement": "3.x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "NTP Module for Debian, Ubuntu, CentOS, RHEL, OEL, Fedora, FreeBSD, ArchLinux and Gentoo.",
|
||||||
|
"dependencies": [
|
||||||
|
{"name":"puppetlabs/stdlib","version_requirement":">= 3.2.0 < 5.0.0"}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,5 +1,11 @@
|
||||||
require 'spec_helper_acceptance'
|
require 'spec_helper_acceptance'
|
||||||
|
|
||||||
|
if (fact('osfamily') == 'Solaris')
|
||||||
|
config = '/etc/inet/ntp.conf'
|
||||||
|
else
|
||||||
|
config = '/etc/ntp.conf'
|
||||||
|
end
|
||||||
|
|
||||||
describe "ntp class with disable_monitor:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
describe "ntp class with disable_monitor:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
||||||
context 'should run successfully' do
|
context 'should run successfully' do
|
||||||
pp = "class { 'ntp': disable_monitor => true }"
|
pp = "class { 'ntp': disable_monitor => true }"
|
||||||
|
@ -9,8 +15,8 @@ describe "ntp class with disable_monitor:", :unless => UNSUPPORTED_PLATFORMS.inc
|
||||||
apply_manifest(pp, :catch_changes => true)
|
apply_manifest(pp, :catch_changes => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should contain('disable monitor') }
|
its(:content) { should match('disable monitor') }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -22,8 +28,8 @@ describe "ntp class with disable_monitor:", :unless => UNSUPPORTED_PLATFORMS.inc
|
||||||
apply_manifest(pp, :catch_changes => true)
|
apply_manifest(pp, :catch_changes => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should_not contain('disable monitor') }
|
its(:content) { should_not match('disable monitor') }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
HOSTS:
|
||||||
|
centos-59-x64:
|
||||||
|
roles:
|
||||||
|
- master
|
||||||
|
platform: el-5-x86_64
|
||||||
|
box : centos-59-x64-vbox4210-nocm
|
||||||
|
box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-59-x64-vbox4210-nocm.box
|
||||||
|
hypervisor : vagrant
|
||||||
|
CONFIG:
|
||||||
|
type: git
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
HOSTS:
|
||||||
|
czriitzephrrlzw:
|
||||||
|
roles:
|
||||||
|
- master
|
||||||
|
- database
|
||||||
|
- dashboard
|
||||||
|
- agent
|
||||||
|
- default
|
||||||
|
platform: sles-12-x86_64
|
||||||
|
template: sles-12-x86_64
|
||||||
|
hypervisor: vcloud
|
||||||
|
CONFIG:
|
||||||
|
nfs_server: none
|
||||||
|
consoleport: 443
|
||||||
|
datastore: instance0
|
||||||
|
folder: Delivery/Quality Assurance/Enterprise/Dynamic
|
||||||
|
resourcepool: delivery/Quality Assurance/Enterprise/Dynamic
|
||||||
|
pooling_api: http://vcloud.delivery.puppetlabs.net/
|
||||||
|
pe_dir: http://enterprise.delivery.puppetlabs.net/3.4/preview
|
|
@ -0,0 +1,11 @@
|
||||||
|
HOSTS:
|
||||||
|
ubuntu-server-1404-x64:
|
||||||
|
roles:
|
||||||
|
- master
|
||||||
|
platform: ubuntu-14.04-amd64
|
||||||
|
box : puppetlabs/ubuntu-14.04-64-nocm
|
||||||
|
box_url : https://vagrantcloud.com/puppetlabs/ubuntu-14.04-64-nocm
|
||||||
|
hypervisor : vagrant
|
||||||
|
CONFIG:
|
||||||
|
log_level : debug
|
||||||
|
type: git
|
|
@ -0,0 +1,16 @@
|
||||||
|
HOSTS:
|
||||||
|
ubuntu1404:
|
||||||
|
roles:
|
||||||
|
- agent
|
||||||
|
platform: ubuntu-14.04-amd64
|
||||||
|
template: ubuntu-1404-x86_64
|
||||||
|
hypervisor: vcloud
|
||||||
|
CONFIG:
|
||||||
|
type: foss
|
||||||
|
keyfile: ~/.ssh/id_rsa-acceptance
|
||||||
|
nfs_server: none
|
||||||
|
consoleport: 443
|
||||||
|
datastore: instance0
|
||||||
|
folder: Delivery/Quality Assurance/Enterprise/Dynamic
|
||||||
|
resourcepool: delivery/Quality Assurance/Enterprise/Dynamic
|
||||||
|
pooling_api: http://vcloud.delivery.puppetlabs.net/
|
|
@ -2,12 +2,12 @@ require 'spec_helper_acceptance'
|
||||||
|
|
||||||
case fact('osfamily')
|
case fact('osfamily')
|
||||||
when 'FreeBSD'
|
when 'FreeBSD'
|
||||||
line = '0.freebsd.pool.ntp.org iburst maxpoll 9'
|
line = '0.freebsd.pool.ntp.org maxpoll 9 iburst'
|
||||||
when 'Debian'
|
when 'Debian'
|
||||||
line = '0.debian.pool.ntp.org iburst'
|
line = '0.debian.pool.ntp.org iburst'
|
||||||
when 'RedHat'
|
when 'RedHat'
|
||||||
line = '0.centos.pool.ntp.org'
|
line = '0.centos.pool.ntp.org'
|
||||||
when 'SuSE'
|
when 'Suse'
|
||||||
line = '0.opensuse.pool.ntp.org'
|
line = '0.opensuse.pool.ntp.org'
|
||||||
when 'Gentoo'
|
when 'Gentoo'
|
||||||
line = '0.gentoo.pool.ntp.org'
|
line = '0.gentoo.pool.ntp.org'
|
||||||
|
@ -18,10 +18,18 @@ when 'Linux'
|
||||||
when 'Gentoo'
|
when 'Gentoo'
|
||||||
line = '0.gentoo.pool.ntp.org'
|
line = '0.gentoo.pool.ntp.org'
|
||||||
end
|
end
|
||||||
|
when 'Solaris'
|
||||||
|
line = '0.pool.ntp.org'
|
||||||
when 'AIX'
|
when 'AIX'
|
||||||
line = '0.debian.pool.ntp.org iburst'
|
line = '0.debian.pool.ntp.org iburst'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if (fact('osfamily') == 'Solaris')
|
||||||
|
config = '/etc/inet/ntp.conf'
|
||||||
|
else
|
||||||
|
config = '/etc/ntp.conf'
|
||||||
|
end
|
||||||
|
|
||||||
describe 'ntp::config class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
describe 'ntp::config class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
||||||
it 'sets up ntp.conf' do
|
it 'sets up ntp.conf' do
|
||||||
apply_manifest(%{
|
apply_manifest(%{
|
||||||
|
@ -29,8 +37,8 @@ describe 'ntp::config class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('os
|
||||||
}, :catch_failures => true)
|
}, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should be_file }
|
it { should be_file }
|
||||||
it { should contain line }
|
its(:content) { should match line }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,8 +14,19 @@ when 'Linux'
|
||||||
end
|
end
|
||||||
when 'AIX'
|
when 'AIX'
|
||||||
packagename = 'bos.net.tcp.client'
|
packagename = 'bos.net.tcp.client'
|
||||||
|
when 'Solaris'
|
||||||
|
case fact('operatingsystemrelease')
|
||||||
|
when '5.10'
|
||||||
|
packagename = ['SUNWntpr','SUNWntpu']
|
||||||
|
when '5.11'
|
||||||
|
packagename = 'service/network/ntp'
|
||||||
|
end
|
||||||
else
|
else
|
||||||
packagename = 'ntp'
|
if fact('operatingsystem') == 'SLES' and fact('operatingsystemmajrelease') == '12'
|
||||||
|
servicename = 'ntpd'
|
||||||
|
else
|
||||||
|
servicename = 'ntp'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'ntp::install class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
describe 'ntp::install class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
||||||
|
@ -25,7 +36,9 @@ describe 'ntp::install class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('o
|
||||||
}, :catch_failures => true)
|
}, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe package(packagename) do
|
Array(packagename).each do |package|
|
||||||
it { should be_installed }
|
describe package(package) do
|
||||||
|
it { should be_installed }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,8 +14,25 @@ when 'Linux'
|
||||||
end
|
end
|
||||||
when 'AIX'
|
when 'AIX'
|
||||||
packagename = 'bos.net.tcp.client'
|
packagename = 'bos.net.tcp.client'
|
||||||
|
when 'Solaris'
|
||||||
|
case fact('operatingsystemrelease')
|
||||||
|
when '5.10'
|
||||||
|
packagename = ['SUNWntpr','SUNWntpu']
|
||||||
|
when '5.11'
|
||||||
|
packagename = 'service/network/ntp'
|
||||||
|
end
|
||||||
else
|
else
|
||||||
packagename = 'ntp'
|
if fact('operatingsystem') == 'SLES' and fact('operatingsystemmajrelease') == '12'
|
||||||
|
servicename = 'ntpd'
|
||||||
|
else
|
||||||
|
servicename = 'ntp'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if (fact('osfamily') == 'Solaris')
|
||||||
|
config = '/etc/inet/ntp.conf'
|
||||||
|
else
|
||||||
|
config = '/etc/ntp.conf'
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "ntp class:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
describe "ntp class:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
||||||
|
@ -60,9 +77,9 @@ describe "ntp class:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily'
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(pp, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should be_file }
|
it { should be_file }
|
||||||
it { should contain 'testcontent' }
|
its(:content) { should match 'testcontent' }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -72,9 +89,9 @@ describe "ntp class:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily'
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(pp, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should be_file }
|
it { should be_file }
|
||||||
it { should contain 'driftfile /tmp/driftfile' }
|
its(:content) { should match 'driftfile /tmp/driftfile' }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -95,12 +112,12 @@ describe "ntp class:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily'
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(pp, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should be_file }
|
it { should be_file }
|
||||||
it { should contain 'keys /etc/ntp/keys' }
|
its(:content) { should match 'keys /etc/ntp/keys' }
|
||||||
it { should contain 'controlkey /etc/ntp/controlkey' }
|
its(:content) { should match 'controlkey /etc/ntp/controlkey' }
|
||||||
it { should contain 'requestkey 1' }
|
its(:content) { should match 'requestkey 1' }
|
||||||
it { should contain 'trustedkey 1 2' }
|
its(:content) { should match 'trustedkey 1 2' }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -109,14 +126,16 @@ describe "ntp class:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily'
|
||||||
pp = <<-EOS
|
pp = <<-EOS
|
||||||
class { 'ntp':
|
class { 'ntp':
|
||||||
package_ensure => present,
|
package_ensure => present,
|
||||||
package_name => ['#{packagename}'],
|
package_name => #{Array(packagename).inspect},
|
||||||
}
|
}
|
||||||
EOS
|
EOS
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(pp, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe package(packagename) do
|
Array(packagename).each do |package|
|
||||||
it { should be_installed }
|
describe package(package) do
|
||||||
|
it { should be_installed }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -130,8 +149,8 @@ describe "ntp class:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily'
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(pp, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should contain 'tinker panic' }
|
its(:content) { should match 'tinker panic' }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -145,8 +164,8 @@ describe "ntp class:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily'
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(pp, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should_not contain 'tinker panic 0' }
|
its(:content) { should_not match 'tinker panic 0' }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -156,9 +175,9 @@ describe "ntp class:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily'
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(pp, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should be_file }
|
it { should be_file }
|
||||||
it { should contain '127.127.1.0' }
|
its(:content) { should match '127.127.1.0' }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,35 @@
|
||||||
require 'spec_helper_acceptance'
|
require 'spec_helper_acceptance'
|
||||||
|
require 'specinfra'
|
||||||
|
|
||||||
case fact('osfamily')
|
case fact('osfamily')
|
||||||
when 'RedHat', 'FreeBSD', 'Linux', 'Gentoo'
|
when 'RedHat', 'FreeBSD', 'Linux', 'Gentoo'
|
||||||
servicename = 'ntpd'
|
servicename = 'ntpd'
|
||||||
when 'AIX'
|
when 'Solaris'
|
||||||
servicename = 'xntpd'
|
servicename = 'network/ntp'
|
||||||
else
|
when 'AIX'
|
||||||
servicename = 'ntp'
|
servicename = 'xntpd'
|
||||||
|
else
|
||||||
|
if fact('operatingsystem') == 'SLES' and fact('operatingsystemmajrelease') == '12'
|
||||||
|
servicename = 'ntpd'
|
||||||
|
else
|
||||||
|
servicename = 'ntp'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
shared_examples 'running' do
|
||||||
|
describe service(servicename) do
|
||||||
|
if !(fact('operatingsystem') == 'SLES' && fact('operatingsystemmajrelease') == '12')
|
||||||
|
it { should be_running }
|
||||||
|
it { should be_enabled }
|
||||||
|
else
|
||||||
|
# hack until we either update SpecInfra or come up with alternative
|
||||||
|
it {
|
||||||
|
output = shell('service ntpd status')
|
||||||
|
expect(output.stdout).to match(/Active\:\s+active\s+\(running\)/)
|
||||||
|
expect(output.stdout).to match(/^\s+Loaded.*enabled\)$/)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'ntp::service class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
describe 'ntp::service class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
||||||
describe 'basic test' do
|
describe 'basic test' do
|
||||||
it 'sets up the service' do
|
it 'sets up the service' do
|
||||||
|
@ -17,10 +38,7 @@ describe 'ntp::service class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('o
|
||||||
}, :catch_failures => true)
|
}, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe service(servicename) do
|
it_should_behave_like 'running'
|
||||||
it { should be_enabled }
|
|
||||||
it { should be_running }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'service parameters' do
|
describe 'service parameters' do
|
||||||
|
@ -35,29 +53,37 @@ describe 'ntp::service class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('o
|
||||||
EOS
|
EOS
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(pp, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
it_should_behave_like 'running'
|
||||||
describe service(servicename) do
|
|
||||||
it { should be_running }
|
|
||||||
it { should be_enabled }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'service is unmanaged' do
|
describe 'service is unmanaged' do
|
||||||
it 'shouldnt stop the service' do
|
it 'shouldnt stop the service' do
|
||||||
pp = <<-EOS
|
pp = <<-EOS
|
||||||
class { 'ntp':
|
class { 'ntp':
|
||||||
service_enable => false,
|
service_enable => false,
|
||||||
service_ensure => stopped,
|
service_ensure => stopped,
|
||||||
service_manage => false,
|
service_manage => false,
|
||||||
service_name => '#{servicename}'
|
service_name => '#{servicename}'
|
||||||
}
|
}
|
||||||
EOS
|
EOS
|
||||||
apply_manifest(pp, :catch_failures => true)
|
apply_manifest(pp, :catch_failures => true)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe service(servicename) do
|
describe service(servicename) do
|
||||||
|
if !(fact('operatingsystem') == 'SLES' && fact('operatingsystemmajrelease') == '12')
|
||||||
it { should be_running }
|
it { should be_running }
|
||||||
it { should be_enabled }
|
it { should be_enabled }
|
||||||
|
else
|
||||||
|
# hack until we either update SpecInfra or come up with alternative
|
||||||
|
output = shell('service ntpd status', :acceptable_exit_codes => [0, 3])
|
||||||
|
it 'should be disabled' do
|
||||||
|
expect(output.stdout).to match(/^\s+Loaded.*disabled\)$/)
|
||||||
|
end
|
||||||
|
it 'should be stopped' do
|
||||||
|
expect(output.stdout).to match(/Active\:\s+inactive/)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
require 'spec_helper_acceptance'
|
require 'spec_helper_acceptance'
|
||||||
|
|
||||||
|
if (fact('osfamily') == 'Solaris')
|
||||||
|
config = '/etc/inet/ntp.conf'
|
||||||
|
else
|
||||||
|
config = '/etc/ntp.conf'
|
||||||
|
end
|
||||||
|
|
||||||
describe 'preferred servers', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
describe 'preferred servers', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
||||||
pp = <<-EOS
|
pp = <<-EOS
|
||||||
class { '::ntp':
|
class { '::ntp':
|
||||||
|
@ -14,11 +20,11 @@ describe 'preferred servers', :unless => UNSUPPORTED_PLATFORMS.include?(fact('os
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should be_file }
|
it { should be_file }
|
||||||
it { should contain 'server a' }
|
its(:content) { should match 'server a' }
|
||||||
it { should contain 'server b' }
|
its(:content) { should match 'server b' }
|
||||||
it { should contain 'server c prefer' }
|
its(:content) { should match /server c (iburst\s|)prefer/ }
|
||||||
it { should contain 'server d prefer' }
|
its(:content) { should match /server d (iburst\s|)prefer/ }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
require 'spec_helper_acceptance'
|
require 'spec_helper_acceptance'
|
||||||
|
|
||||||
|
if (fact('osfamily') == 'Solaris')
|
||||||
|
config = '/etc/inet/ntp.conf'
|
||||||
|
else
|
||||||
|
config = '/etc/ntp.conf'
|
||||||
|
end
|
||||||
|
|
||||||
describe "ntp class with restrict:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
describe "ntp class with restrict:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
|
||||||
context 'should run successfully' do
|
context 'should run successfully' do
|
||||||
pp = "class { 'ntp': restrict => ['test restrict']}"
|
|
||||||
|
|
||||||
it 'runs twice' do
|
it 'runs twice' do
|
||||||
|
pp = "class { 'ntp': restrict => ['test restrict']}"
|
||||||
2.times do
|
2.times do
|
||||||
apply_manifest(pp, :catch_failures => true) do |r|
|
apply_manifest(pp, :catch_failures => true) do |r|
|
||||||
expect(r.stderr).not_to match(/error/i)
|
expect(r.stderr).not_to match(/error/i)
|
||||||
|
@ -13,8 +18,8 @@ describe "ntp class with restrict:", :unless => UNSUPPORTED_PLATFORMS.include?(f
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe file('/etc/ntp.conf') do
|
describe file("#{config}") do
|
||||||
it { should contain('test restrict') }
|
its(:content) { should match('test restrict') }
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,157 +1,241 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'ntp' do
|
describe 'ntp' do
|
||||||
|
let(:facts) {{ :is_virtual => 'false' }}
|
||||||
|
|
||||||
['Debian', 'RedHat','SuSE', 'FreeBSD', 'Archlinux', 'Gentoo', 'Gentoo (Facter < 1.7)'].each do |system|
|
['Debian', 'RedHat','Suse', 'FreeBSD', 'Archlinux', 'Gentoo', 'Gentoo (Facter < 1.7)'].each do |system|
|
||||||
if system == 'Gentoo (Facter < 1.7)'
|
context "when on system #{system}" do
|
||||||
let(:facts) {{ :osfamily => 'Linux', :operatingsystem => 'Gentoo' }}
|
if system == 'Gentoo (Facter < 1.7)'
|
||||||
else
|
let :facts do
|
||||||
let(:facts) {{ :osfamily => system }}
|
super().merge({ :osfamily => 'Linux', :operatingsystem => 'Gentoo' })
|
||||||
end
|
end
|
||||||
|
elsif system == 'Suse'
|
||||||
it { should contain_class('ntp::install') }
|
let :facts do
|
||||||
it { should contain_class('ntp::config') }
|
super().merge({ :osfamily => system,:operatingsystem => 'SLES',:operatingsystemmajrelease => '11' })
|
||||||
it { should contain_class('ntp::service') }
|
end
|
||||||
|
else
|
||||||
describe "ntp::config on #{system}" do
|
let :facts do
|
||||||
it { should contain_file('/etc/ntp.conf').with_owner('0') }
|
super().merge({ :osfamily => system })
|
||||||
it { should contain_file('/etc/ntp.conf').with_group('0') }
|
end
|
||||||
it { should contain_file('/etc/ntp.conf').with_mode('0644') }
|
|
||||||
|
|
||||||
describe 'allows template to be overridden' do
|
|
||||||
let(:params) {{ :config_template => 'my_ntp/ntp.conf.erb' }}
|
|
||||||
it { should contain_file('/etc/ntp.conf').with({
|
|
||||||
'content' => /server foobar/})
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "keys for osfamily #{system}" do
|
it { should contain_class('ntp::install') }
|
||||||
context "when enabled" do
|
it { should contain_class('ntp::config') }
|
||||||
|
it { should contain_class('ntp::service') }
|
||||||
|
|
||||||
|
describe "ntp::config on #{system}" do
|
||||||
|
it { should contain_file('/etc/ntp.conf').with_owner('0') }
|
||||||
|
it { should contain_file('/etc/ntp.conf').with_group('0') }
|
||||||
|
it { should contain_file('/etc/ntp.conf').with_mode('0644') }
|
||||||
|
|
||||||
|
describe 'allows template to be overridden' do
|
||||||
|
let(:params) {{ :config_template => 'my_ntp/ntp.conf.erb' }}
|
||||||
|
it { should contain_file('/etc/ntp.conf').with({
|
||||||
|
'content' => /server foobar/})
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "keys for osfamily #{system}" do
|
||||||
|
context "when enabled" do
|
||||||
|
let(:params) {{
|
||||||
|
:keys_enable => true,
|
||||||
|
:keys_file => '/etc/ntp/ntp.keys',
|
||||||
|
:keys_trusted => ['1', '2', '3'],
|
||||||
|
:keys_controlkey => '2',
|
||||||
|
:keys_requestkey => '3',
|
||||||
|
}}
|
||||||
|
|
||||||
|
it { should contain_file('/etc/ntp').with({
|
||||||
|
'ensure' => 'directory'})
|
||||||
|
}
|
||||||
|
it { should contain_file('/etc/ntp.conf').with({
|
||||||
|
'content' => /trustedkey 1 2 3/})
|
||||||
|
}
|
||||||
|
it { should contain_file('/etc/ntp.conf').with({
|
||||||
|
'content' => /controlkey 2/})
|
||||||
|
}
|
||||||
|
it { should contain_file('/etc/ntp.conf').with({
|
||||||
|
'content' => /requestkey 3/})
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when disabled" do
|
||||||
let(:params) {{
|
let(:params) {{
|
||||||
:keys_enable => true,
|
:keys_enable => false,
|
||||||
:keys_file => '/etc/ntp/ntp.keys',
|
:keys_file => '/etc/ntp/ntp.keys',
|
||||||
:keys_trusted => ['1', '2', '3'],
|
:keys_trusted => ['1', '2', '3'],
|
||||||
:keys_controlkey => '2',
|
:keys_controlkey => '2',
|
||||||
:keys_requestkey => '3',
|
:keys_requestkey => '3',
|
||||||
}}
|
}}
|
||||||
|
|
||||||
it { should contain_file('/etc/ntp').with({
|
it { should_not contain_file('/etc/ntp').with({
|
||||||
'ensure' => 'directory'})
|
'ensure' => 'directory'})
|
||||||
}
|
}
|
||||||
it { should contain_file('/etc/ntp.conf').with({
|
it { should_not contain_file('/etc/ntp.conf').with({
|
||||||
'content' => /trustedkey 1 2 3/})
|
'content' => /trustedkey 1 2 3/})
|
||||||
}
|
}
|
||||||
it { should contain_file('/etc/ntp.conf').with({
|
it { should_not contain_file('/etc/ntp.conf').with({
|
||||||
'content' => /controlkey 2/})
|
'content' => /controlkey 2/})
|
||||||
}
|
}
|
||||||
it { should contain_file('/etc/ntp.conf').with({
|
it { should_not contain_file('/etc/ntp.conf').with({
|
||||||
'content' => /requestkey 3/})
|
'content' => /requestkey 3/})
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
context "when disabled" do
|
describe 'preferred servers' do
|
||||||
let(:params) {{
|
context "when set" do
|
||||||
:keys_enable => false,
|
let(:params) {{
|
||||||
:keys_file => '/etc/ntp/ntp.keys',
|
:servers => ['a', 'b', 'c', 'd'],
|
||||||
:keys_trusted => ['1', '2', '3'],
|
:preferred_servers => ['a', 'b']
|
||||||
:keys_controlkey => '2',
|
}}
|
||||||
:keys_requestkey => '3',
|
|
||||||
}}
|
|
||||||
|
|
||||||
it { should_not contain_file('/etc/ntp').with({
|
it { should contain_file('/etc/ntp.conf').with({
|
||||||
'ensure' => 'directory'})
|
'content' => /server a( iburst)? prefer\nserver b( iburst)? prefer\nserver c( iburst)?\nserver d( iburst)?/})
|
||||||
}
|
}
|
||||||
it { should_not contain_file('/etc/ntp.conf').with({
|
end
|
||||||
'content' => /trustedkey 1 2 3/})
|
context "when not set" do
|
||||||
}
|
let(:params) {{
|
||||||
it { should_not contain_file('/etc/ntp.conf').with({
|
:servers => ['a', 'b', 'c', 'd'],
|
||||||
'content' => /controlkey 2/})
|
:preferred_servers => []
|
||||||
}
|
}}
|
||||||
it { should_not contain_file('/etc/ntp.conf').with({
|
|
||||||
'content' => /requestkey 3/})
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'preferred servers' do
|
it { should_not contain_file('/etc/ntp.conf').with({
|
||||||
context "when set" do
|
'content' => /server a prefer/})
|
||||||
let(:params) {{
|
}
|
||||||
:servers => ['a', 'b', 'c', 'd'],
|
end
|
||||||
:preferred_servers => ['a', 'b']
|
|
||||||
}}
|
|
||||||
|
|
||||||
it { should contain_file('/etc/ntp.conf').with({
|
|
||||||
'content' => /server a prefer\nserver b prefer\nserver c\nserver d/})
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
context "when not set" do
|
describe 'specified interfaces' do
|
||||||
let(:params) {{
|
context "when set" do
|
||||||
:servers => ['a', 'b', 'c', 'd'],
|
let(:params) {{
|
||||||
:preferred_servers => []
|
:servers => ['a', 'b', 'c', 'd'],
|
||||||
}}
|
:interfaces => ['127.0.0.1', 'a.b.c.d']
|
||||||
|
}}
|
||||||
|
|
||||||
it { should_not contain_file('/etc/ntp.conf').with({
|
it { should contain_file('/etc/ntp.conf').with({
|
||||||
'content' => /server a prefer/})
|
'content' => /interface ignore wildcard\ninterface listen 127.0.0.1\ninterface listen a.b.c.d/})
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
context "when not set" do
|
||||||
|
let(:params) {{
|
||||||
|
:servers => ['a', 'b', 'c', 'd'],
|
||||||
|
}}
|
||||||
|
|
||||||
describe "ntp::install on #{system}" do
|
it { should_not contain_file('/etc/ntp.conf').with({
|
||||||
let(:params) {{ :package_ensure => 'present', :package_name => ['ntp'], }}
|
'content' => /interface ignore wildcard/})
|
||||||
|
}
|
||||||
it { should contain_package('ntp').with(
|
|
||||||
:ensure => 'present',
|
|
||||||
:name => 'ntp'
|
|
||||||
)}
|
|
||||||
|
|
||||||
describe 'should allow package ensure to be overridden' do
|
|
||||||
let(:params) {{ :package_ensure => 'latest', :package_name => ['ntp'] }}
|
|
||||||
it { should contain_package('ntp').with_ensure('latest') }
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'should allow the package name to be overridden' do
|
|
||||||
let(:params) {{ :package_ensure => 'present', :package_name => ['hambaby'] }}
|
|
||||||
it { should contain_package('ntp').with_name('hambaby') }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'ntp::service' do
|
|
||||||
let(:params) {{
|
|
||||||
:service_manage => true,
|
|
||||||
:service_enable => true,
|
|
||||||
:service_ensure => 'running',
|
|
||||||
:service_name => 'ntp'
|
|
||||||
}}
|
|
||||||
|
|
||||||
describe 'with defaults' do
|
|
||||||
it { should contain_service('ntp').with(
|
|
||||||
:enable => true,
|
|
||||||
:ensure => 'running',
|
|
||||||
:name => 'ntp'
|
|
||||||
)}
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'service_ensure' do
|
|
||||||
describe 'when overridden' do
|
|
||||||
let(:params) {{ :service_name => 'ntp', :service_ensure => 'stopped' }}
|
|
||||||
it { should contain_service('ntp').with_ensure('stopped') }
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'service_manage' do
|
describe "ntp::install on #{system}" do
|
||||||
|
let(:params) {{ :package_ensure => 'present', :package_name => ['ntp'], }}
|
||||||
|
|
||||||
|
it { should contain_package('ntp').with(
|
||||||
|
:ensure => 'present'
|
||||||
|
)}
|
||||||
|
|
||||||
|
describe 'should allow package ensure to be overridden' do
|
||||||
|
let(:params) {{ :package_ensure => 'latest', :package_name => ['ntp'] }}
|
||||||
|
it { should contain_package('ntp').with_ensure('latest') }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'should allow the package name to be overridden' do
|
||||||
|
let(:params) {{ :package_ensure => 'present', :package_name => ['hambaby'] }}
|
||||||
|
it { should contain_package('hambaby') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'ntp::service' do
|
||||||
let(:params) {{
|
let(:params) {{
|
||||||
:service_manage => false,
|
:service_manage => true,
|
||||||
:service_enable => true,
|
:service_enable => true,
|
||||||
:service_ensure => 'running',
|
:service_ensure => 'running',
|
||||||
:service_name => 'ntpd',
|
:service_name => 'ntp'
|
||||||
}}
|
}}
|
||||||
|
|
||||||
it 'when set to false' do
|
describe 'with defaults' do
|
||||||
should_not contain_service('ntp').with({
|
it { should contain_service('ntp').with(
|
||||||
'enable' => true,
|
:enable => true,
|
||||||
'ensure' => 'running',
|
:ensure => 'running',
|
||||||
'name' => 'ntpd'
|
:name => 'ntp'
|
||||||
})
|
)}
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'service_ensure' do
|
||||||
|
describe 'when overridden' do
|
||||||
|
let(:params) {{ :service_name => 'ntp', :service_ensure => 'stopped' }}
|
||||||
|
it { should contain_service('ntp').with_ensure('stopped') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'service_manage' do
|
||||||
|
let(:params) {{
|
||||||
|
:service_manage => false,
|
||||||
|
:service_enable => true,
|
||||||
|
:service_ensure => 'running',
|
||||||
|
:service_name => 'ntpd',
|
||||||
|
}}
|
||||||
|
|
||||||
|
it 'when set to false' do
|
||||||
|
should_not contain_service('ntp').with({
|
||||||
|
'enable' => true,
|
||||||
|
'ensure' => 'running',
|
||||||
|
'name' => 'ntpd'
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'with parameter iburst_enable' do
|
||||||
|
context 'when set to true' do
|
||||||
|
let(:params) {{
|
||||||
|
:iburst_enable => true,
|
||||||
|
}}
|
||||||
|
|
||||||
|
it do
|
||||||
|
should contain_file('/etc/ntp.conf').with({
|
||||||
|
'content' => /iburst\n/,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when set to false' do
|
||||||
|
let(:params) {{
|
||||||
|
:iburst_enable => false,
|
||||||
|
}}
|
||||||
|
|
||||||
|
it do
|
||||||
|
should_not contain_file('/etc/ntp.conf').with({
|
||||||
|
'content' => /iburst\n/,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'with parameter logfile' do
|
||||||
|
context 'when set to true' do
|
||||||
|
let(:params) {{
|
||||||
|
:servers => ['a', 'b', 'c', 'd'],
|
||||||
|
:logfile => '/var/log/foobar.log',
|
||||||
|
}}
|
||||||
|
|
||||||
|
it 'should contain logfile setting' do
|
||||||
|
should contain_file('/etc/ntp.conf').with({
|
||||||
|
'content' => /^logfile = \/var\/log\/foobar\.log\n/,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when set to false' do
|
||||||
|
let(:params) {{
|
||||||
|
:servers => ['a', 'b', 'c', 'd'],
|
||||||
|
}}
|
||||||
|
|
||||||
|
it 'should not contain a logfile line' do
|
||||||
|
should_not contain_file('/etc/ntp.conf').with({
|
||||||
|
'content' => /logfile =/,
|
||||||
|
})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -159,8 +243,10 @@ describe 'ntp' do
|
||||||
|
|
||||||
context 'ntp::config' do
|
context 'ntp::config' do
|
||||||
describe "for operating system Gentoo (Facter < 1.7)" do
|
describe "for operating system Gentoo (Facter < 1.7)" do
|
||||||
let(:facts) {{ :operatingsystem => 'Gentoo',
|
let :facts do
|
||||||
:osfamily => 'Linux' }}
|
super().merge({ :operatingsystem => 'Gentoo',
|
||||||
|
:osfamily => 'Linux' })
|
||||||
|
end
|
||||||
|
|
||||||
it 'uses the NTP pool servers by default' do
|
it 'uses the NTP pool servers by default' do
|
||||||
should contain_file('/etc/ntp.conf').with({
|
should contain_file('/etc/ntp.conf').with({
|
||||||
|
@ -170,7 +256,9 @@ describe 'ntp' do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "on osfamily Gentoo" do
|
describe "on osfamily Gentoo" do
|
||||||
let(:facts) {{ :osfamily => 'Gentoo' }}
|
let :facts do
|
||||||
|
super().merge({ :osfamily => 'Gentoo' })
|
||||||
|
end
|
||||||
|
|
||||||
it 'uses the NTP pool servers by default' do
|
it 'uses the NTP pool servers by default' do
|
||||||
should contain_file('/etc/ntp.conf').with({
|
should contain_file('/etc/ntp.conf').with({
|
||||||
|
@ -180,17 +268,21 @@ describe 'ntp' do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "on osfamily Debian" do
|
describe "on osfamily Debian" do
|
||||||
let(:facts) {{ :osfamily => 'debian' }}
|
let :facts do
|
||||||
|
super().merge({ :osfamily => 'debian' })
|
||||||
|
end
|
||||||
|
|
||||||
it 'uses the debian ntp servers by default' do
|
it 'uses the debian ntp servers by default' do
|
||||||
should contain_file('/etc/ntp.conf').with({
|
should contain_file('/etc/ntp.conf').with({
|
||||||
'content' => /server \d.debian.pool.ntp.org iburst/,
|
'content' => /server \d.debian.pool.ntp.org iburst\n/,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "on osfamily RedHat" do
|
describe "on osfamily RedHat" do
|
||||||
let(:facts) {{ :osfamily => 'RedHat' }}
|
let :facts do
|
||||||
|
super().merge({ :osfamily => 'RedHat' })
|
||||||
|
end
|
||||||
|
|
||||||
it 'uses the redhat ntp servers by default' do
|
it 'uses the redhat ntp servers by default' do
|
||||||
should contain_file('/etc/ntp.conf').with({
|
should contain_file('/etc/ntp.conf').with({
|
||||||
|
@ -199,28 +291,34 @@ describe 'ntp' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "on osfamily SuSE" do
|
describe "on osfamily Suse" do
|
||||||
let(:facts) {{ :osfamily => 'SuSE' }}
|
let :facts do
|
||||||
|
super().merge({ :osfamily => 'Suse', :operatingsystem => 'SLES',:operatingsystemmajrelease => '11' })
|
||||||
|
end
|
||||||
|
|
||||||
it 'uses the opensuse ntp servers by default' do
|
it 'uses the opensuse ntp servers by default' do
|
||||||
should contain_file('/etc/ntp.conf').with({
|
should contain_file('/etc/ntp.conf').with({
|
||||||
'content' => /server \d.opensuse.pool.ntp.org/,
|
'content' => /server \d.opensuse.pool.ntp.org/,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "on osfamily FreeBSD" do
|
describe "on osfamily FreeBSD" do
|
||||||
let(:facts) {{ :osfamily => 'FreeBSD' }}
|
let :facts do
|
||||||
|
super().merge({ :osfamily => 'FreeBSD' })
|
||||||
|
end
|
||||||
|
|
||||||
it 'uses the freebsd ntp servers by default' do
|
it 'uses the freebsd ntp servers by default' do
|
||||||
should contain_file('/etc/ntp.conf').with({
|
should contain_file('/etc/ntp.conf').with({
|
||||||
'content' => /server \d.freebsd.pool.ntp.org iburst maxpoll 9/,
|
'content' => /server \d.freebsd.pool.ntp.org maxpoll 9 iburst/,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "on osfamily ArchLinux" do
|
describe "on osfamily ArchLinux" do
|
||||||
let(:facts) {{ :osfamily => 'ArchLinux' }}
|
let :facts do
|
||||||
|
super().merge({ :osfamily => 'ArchLinux' })
|
||||||
|
end
|
||||||
|
|
||||||
it 'uses the NTP pool servers by default' do
|
it 'uses the NTP pool servers by default' do
|
||||||
should contain_file('/etc/ntp.conf').with({
|
should contain_file('/etc/ntp.conf').with({
|
||||||
|
@ -229,10 +327,36 @@ describe 'ntp' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "on osfamily Solaris and operatingsystemrelease 5.10" do
|
||||||
|
let :facts do
|
||||||
|
super().merge({ :osfamily => 'Solaris', :operatingsystemrelease => '5.10' })
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'uses the NTP pool servers by default' do
|
||||||
|
should contain_file('/etc/inet/ntp.conf').with({
|
||||||
|
'content' => /server \d.pool.ntp.org/,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "on osfamily Solaris and operatingsystemrelease 5.11" do
|
||||||
|
let :facts do
|
||||||
|
super().merge({ :osfamily => 'Solaris', :operatingsystemrelease => '5.11' })
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'uses the NTP pool servers by default' do
|
||||||
|
should contain_file('/etc/inet/ntp.conf').with({
|
||||||
|
'content' => /server \d.pool.ntp.org/,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "for operating system family unsupported" do
|
describe "for operating system family unsupported" do
|
||||||
let(:facts) {{
|
let :facts do
|
||||||
|
super().merge({
|
||||||
:osfamily => 'unsupported',
|
:osfamily => 'unsupported',
|
||||||
}}
|
})
|
||||||
|
end
|
||||||
|
|
||||||
it { expect{ subject }.to raise_error(
|
it { expect{ subject }.to raise_error(
|
||||||
/^The ntp module is not supported on an unsupported based system./
|
/^The ntp module is not supported on an unsupported based system./
|
||||||
|
@ -241,8 +365,10 @@ describe 'ntp' do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'for virtual machines' do
|
describe 'for virtual machines' do
|
||||||
let(:facts) {{ :osfamily => 'Archlinux',
|
let :facts do
|
||||||
:is_virtual => 'true' }}
|
super().merge({ :osfamily => 'Archlinux',
|
||||||
|
:is_virtual => 'true' })
|
||||||
|
end
|
||||||
|
|
||||||
it 'should not use local clock as a time source' do
|
it 'should not use local clock as a time source' do
|
||||||
should_not contain_file('/etc/ntp.conf').with({
|
should_not contain_file('/etc/ntp.conf').with({
|
||||||
|
@ -258,8 +384,10 @@ describe 'ntp' do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'for physical machines' do
|
describe 'for physical machines' do
|
||||||
let(:facts) {{ :osfamily => 'Archlinux',
|
let :facts do
|
||||||
:is_virtual => 'false' }}
|
super().merge({ :osfamily => 'Archlinux',
|
||||||
|
:is_virtual => 'false' })
|
||||||
|
end
|
||||||
|
|
||||||
it 'disallows large clock skews' do
|
it 'disallows large clock skews' do
|
||||||
should_not contain_file('/etc/ntp.conf').with({
|
should_not contain_file('/etc/ntp.conf').with({
|
||||||
|
@ -268,5 +396,4 @@ describe 'ntp' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1 +1,28 @@
|
||||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||||
|
|
||||||
|
RSpec.configure do |c|
|
||||||
|
c.include PuppetlabsSpec::Files
|
||||||
|
|
||||||
|
c.before :each do
|
||||||
|
# Ensure that we don't accidentally cache facts and environment
|
||||||
|
# between test cases.
|
||||||
|
Facter::Util::Loader.any_instance.stubs(:load_all)
|
||||||
|
Facter.clear
|
||||||
|
Facter.clear_messages
|
||||||
|
|
||||||
|
# Store any environment variables away to be restored later
|
||||||
|
@old_env = {}
|
||||||
|
ENV.each_key {|k| @old_env[k] = ENV[k]}
|
||||||
|
|
||||||
|
if Gem::Version.new(`puppet --version`) >= Gem::Version.new('3.5')
|
||||||
|
Puppet.settings[:strict_variables]=true
|
||||||
|
end
|
||||||
|
if ENV['PARSER']
|
||||||
|
Puppet.settings[:parser]=ENV['PARSER']
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
c.after :each do
|
||||||
|
PuppetlabsSpec::Files.cleanup
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -1,15 +1,29 @@
|
||||||
require 'beaker-rspec'
|
require 'beaker-rspec'
|
||||||
|
|
||||||
UNSUPPORTED_PLATFORMS = [ 'windows', 'Solaris' ]
|
UNSUPPORTED_PLATFORMS = ['windows', 'Darwin']
|
||||||
|
|
||||||
unless ENV['RS_PROVISION'] == 'no' or ENV['BEAKER_provision'] == 'no'
|
unless ENV['RS_PROVISION'] == 'no' or ENV['BEAKER_provision'] == 'no'
|
||||||
if hosts.first.is_pe?
|
# This will install the latest available package on el and deb based
|
||||||
install_pe
|
# systems fail on windows and osx, and install via gem on other *nixes
|
||||||
|
foss_opts = {:default_action => 'gem_install'}
|
||||||
|
|
||||||
|
if default.is_pe?; then
|
||||||
|
install_pe;
|
||||||
else
|
else
|
||||||
install_puppet
|
install_puppet(foss_opts);
|
||||||
end
|
end
|
||||||
|
|
||||||
hosts.each do |host|
|
hosts.each do |host|
|
||||||
on hosts, "mkdir -p #{host['distmoduledir']}"
|
unless host.is_pe?
|
||||||
|
on host, "/bin/echo '' > #{host['hieraconf']}"
|
||||||
|
end
|
||||||
|
on host, "mkdir -p #{host['distmoduledir']}"
|
||||||
|
if host['platform'] =~ /sles-12/i || host['platform'] =~ /solaris-11/i
|
||||||
|
apply_manifest_on(host, 'package{"git":}')
|
||||||
|
on host, 'git clone -b 4.3.x https://github.com/puppetlabs/puppetlabs-stdlib /etc/puppetlabs/puppet/modules/stdlib'
|
||||||
|
else
|
||||||
|
on host, puppet('module install puppetlabs-stdlib'), {:acceptable_exit_codes => [0, 1]}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -22,11 +36,11 @@ RSpec.configure do |c|
|
||||||
|
|
||||||
# Configure all nodes in nodeset
|
# Configure all nodes in nodeset
|
||||||
c.before :suite do
|
c.before :suite do
|
||||||
# Install module and dependencies
|
|
||||||
puppet_module_install(:source => proj_root, :module_name => 'ntp')
|
|
||||||
hosts.each do |host|
|
hosts.each do |host|
|
||||||
shell("/bin/touch #{default['puppetpath']}/hiera.yaml")
|
on host, "mkdir -p #{host['distmoduledir']}/ntp"
|
||||||
shell('puppet module install puppetlabs-stdlib', :acceptable_exit_codes => [0,1])
|
%w(lib manifests templates metadata.json).each do |file|
|
||||||
|
scp_to host, "#{proj_root}/#{file}", "#{host['distmoduledir']}/ntp"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,11 +15,20 @@ disable monitor
|
||||||
# permit the source to query or modify the service on this system.
|
# permit the source to query or modify the service on this system.
|
||||||
<% @restrict.flatten.each do |restrict| -%>
|
<% @restrict.flatten.each do |restrict| -%>
|
||||||
restrict <%= restrict %>
|
restrict <%= restrict %>
|
||||||
<% end %>
|
<% 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 -%>
|
<% end -%>
|
||||||
|
|
||||||
<% [@servers].flatten.each do |server| -%>
|
<% [@servers].flatten.each do |server| -%>
|
||||||
server <%= server %><% if @preferred_servers.include?(server) -%> prefer<% end %>
|
server <%= server %><% if @iburst_enable == true -%> iburst<% end %><% if @preferred_servers.include?(server) -%> prefer<% end %>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
|
|
||||||
<% if scope.lookupvar('::is_virtual') == "false" or @udlc -%>
|
<% if scope.lookupvar('::is_virtual') == "false" or @udlc -%>
|
||||||
|
@ -33,10 +42,10 @@ restrict 127.127.1.0
|
||||||
# Driftfile.
|
# Driftfile.
|
||||||
driftfile <%= @driftfile %>
|
driftfile <%= @driftfile %>
|
||||||
|
|
||||||
<% unless @logfile.nil? %>
|
<% unless @logfile.nil? -%>
|
||||||
# Logfile
|
# Logfile
|
||||||
logfile = <%= @logfile %>
|
logfile = <%= @logfile %>
|
||||||
<% end %>
|
<% end -%>
|
||||||
|
|
||||||
<% if @keys_enable -%>
|
<% if @keys_enable -%>
|
||||||
keys <%= @keys_file %>
|
keys <%= @keys_file %>
|
||||||
|
|
|
@ -22,7 +22,6 @@ mysql
|
||||||
nailgun
|
nailgun
|
||||||
neutron
|
neutron
|
||||||
nova
|
nova
|
||||||
ntp
|
|
||||||
openssl
|
openssl
|
||||||
openstack
|
openstack
|
||||||
operatingsystem
|
operatingsystem
|
||||||
|
|
Loading…
Reference in New Issue