mod 'puppetlabs/concat', '4.0.1'
mod 'puppetlabs-postgresql', '5.1.0'
-mod 'camptocamp-systemd', '2.1.0'
mod 'puppet/rabbitmq', '8.4.0'
mod 'nanliu/staging', '1.0.3'
+++ /dev/null
-# Changelog
-
-All notable changes to this project will be documented in this file.
-Each new release typically also includes the latest modulesync defaults.
-These should not affect the functionality of the module.
-
-## [v2.1.0](https://github.com/camptocamp/puppet-systemd/tree/v2.1.0) (2018-08-31)
-
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/2.0.0...v2.1.0)
-
-**Implemented enhancements:**
-
-- Modify service limit type [\#81](https://github.com/camptocamp/puppet-systemd/pull/81) ([bastelfreak](https://github.com/bastelfreak))
-- Add parameter to select resolver [\#79](https://github.com/camptocamp/puppet-systemd/pull/79) ([amateo](https://github.com/amateo))
-
-**Fixed bugs:**
-
-- Handle ensuring service\_limits to be absent [\#80](https://github.com/camptocamp/puppet-systemd/pull/80) ([ekohl](https://github.com/ekohl))
-
-**Merged pull requests:**
-
-- do not access facts as top scope variable [\#85](https://github.com/camptocamp/puppet-systemd/pull/85) ([bastelfreak](https://github.com/bastelfreak))
-- Release 2.1.0 [\#84](https://github.com/camptocamp/puppet-systemd/pull/84) ([bastelfreak](https://github.com/bastelfreak))
-- allow puppetlabs/stdlib 5.x [\#83](https://github.com/camptocamp/puppet-systemd/pull/83) ([bastelfreak](https://github.com/bastelfreak))
-- Fix CHANGELOG.md duplicate footer [\#78](https://github.com/camptocamp/puppet-systemd/pull/78) ([alexjfisher](https://github.com/alexjfisher))
-
-## [2.0.0](https://github.com/camptocamp/puppet-systemd/tree/2.0.0) (2018-07-11)
-
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/1.1.1...2.0.0)
-
-**Breaking changes:**
-
-- move params to data-in-modules [\#67](https://github.com/camptocamp/puppet-systemd/pull/67) ([bastelfreak](https://github.com/bastelfreak))
-
-**Implemented enhancements:**
-
-- add ubuntu 18.04 support [\#72](https://github.com/camptocamp/puppet-systemd/pull/72) ([bastelfreak](https://github.com/bastelfreak))
-- bump facter to latest 2.x version [\#71](https://github.com/camptocamp/puppet-systemd/pull/71) ([bastelfreak](https://github.com/bastelfreak))
-- Add enable and active parameters to unit\_file [\#69](https://github.com/camptocamp/puppet-systemd/pull/69) ([jcharaoui](https://github.com/jcharaoui))
-- Add support for Resource Accounting via systemd [\#65](https://github.com/camptocamp/puppet-systemd/pull/65) ([bastelfreak](https://github.com/bastelfreak))
-- Allow resolved class to configure DNS settings [\#59](https://github.com/camptocamp/puppet-systemd/pull/59) ([hfm](https://github.com/hfm))
-- Replace iterator with stdlib function [\#58](https://github.com/camptocamp/puppet-systemd/pull/58) ([jfleury-at-ovh](https://github.com/jfleury-at-ovh))
-
-**Closed issues:**
-
-- Better test for systemd \(and other init systems\) [\#37](https://github.com/camptocamp/puppet-systemd/issues/37)
-
-**Merged pull requests:**
-
-- fix puppet-linter warnings in README.md [\#75](https://github.com/camptocamp/puppet-systemd/pull/75) ([bastelfreak](https://github.com/bastelfreak))
-- release 2.0.0 [\#70](https://github.com/camptocamp/puppet-systemd/pull/70) ([bastelfreak](https://github.com/bastelfreak))
-- Update the documentation of facts [\#68](https://github.com/camptocamp/puppet-systemd/pull/68) ([ekohl](https://github.com/ekohl))
-- purge legacy puppet-lint checks [\#66](https://github.com/camptocamp/puppet-systemd/pull/66) ([bastelfreak](https://github.com/bastelfreak))
-- Reuse the systemd::dropin\_file in service\_limits [\#61](https://github.com/camptocamp/puppet-systemd/pull/61) ([ekohl](https://github.com/ekohl))
-- cleanup README.md [\#60](https://github.com/camptocamp/puppet-systemd/pull/60) ([bastelfreak](https://github.com/bastelfreak))
-- implement github changelog generator [\#45](https://github.com/camptocamp/puppet-systemd/pull/45) ([bastelfreak](https://github.com/bastelfreak))
-
-## [1.1.1](https://github.com/camptocamp/puppet-systemd/tree/1.1.1) (2017-11-29)
-
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/1.1.0...1.1.1)
-
-**Fixed bugs:**
-
-- fact systemd\_internal\_services is empty [\#47](https://github.com/camptocamp/puppet-systemd/issues/47)
-- Use the correct type on $service\_limits [\#52](https://github.com/camptocamp/puppet-systemd/pull/52) ([ekohl](https://github.com/ekohl))
-- Fix issue \#47 [\#48](https://github.com/camptocamp/puppet-systemd/pull/48) ([axxelG](https://github.com/axxelG))
-
-**Closed issues:**
-
-- Not able to set limits via systemd class [\#49](https://github.com/camptocamp/puppet-systemd/issues/49)
-
-**Merged pull requests:**
-
-- Clean up test tooling [\#54](https://github.com/camptocamp/puppet-systemd/pull/54) ([ekohl](https://github.com/ekohl))
-- Correct parameter documentation [\#53](https://github.com/camptocamp/puppet-systemd/pull/53) ([ekohl](https://github.com/ekohl))
-- Use a space-separated in timesyncd.conf [\#50](https://github.com/camptocamp/puppet-systemd/pull/50) ([hfm](https://github.com/hfm))
-- Use the same systemd drop-in file for different units [\#46](https://github.com/camptocamp/puppet-systemd/pull/46) ([countsudoku](https://github.com/countsudoku))
-
-## [1.1.0](https://github.com/camptocamp/puppet-systemd/tree/1.1.0) (2017-10-24)
-
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/1.0.0...1.1.0)
-
-**Closed issues:**
-
-- Add explicit ordering to README.md [\#24](https://github.com/camptocamp/puppet-systemd/issues/24)
-- Manage drop-in files [\#15](https://github.com/camptocamp/puppet-systemd/issues/15)
-
-**Merged pull requests:**
-
-- Add systemd-timesyncd support [\#43](https://github.com/camptocamp/puppet-systemd/pull/43) ([bastelfreak](https://github.com/bastelfreak))
-- Reuse the service\_provider fact from stdlib [\#42](https://github.com/camptocamp/puppet-systemd/pull/42) ([ekohl](https://github.com/ekohl))
-- \(doc\) Adds examples of running the service created [\#29](https://github.com/camptocamp/puppet-systemd/pull/29) ([petems](https://github.com/petems))
-- Quote hash keys in example of service limits [\#20](https://github.com/camptocamp/puppet-systemd/pull/20) ([stbenjam](https://github.com/stbenjam))
-
-## [1.0.0](https://github.com/camptocamp/puppet-systemd/tree/1.0.0) (2017-09-04)
-
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.4.0...1.0.0)
-
-**Closed issues:**
-
-- PR\#18 broke service limits capacity [\#35](https://github.com/camptocamp/puppet-systemd/issues/35)
-- stdlib functions are used, but no stdlib requirement in metadata.json [\#28](https://github.com/camptocamp/puppet-systemd/issues/28)
-- investigate update to camptocamp/systemd module [\#21](https://github.com/camptocamp/puppet-systemd/issues/21)
-- Module should be updated to use the new Puppet 4 goodness [\#17](https://github.com/camptocamp/puppet-systemd/issues/17)
-
-**Merged pull requests:**
-
-- Add support for drop-in files [\#39](https://github.com/camptocamp/puppet-systemd/pull/39) ([countsudoku](https://github.com/countsudoku))
-- Adds control group limits to ServiceLimits [\#36](https://github.com/camptocamp/puppet-systemd/pull/36) ([trevor-vaughan](https://github.com/trevor-vaughan))
-- it's systemd not SystemD [\#33](https://github.com/camptocamp/puppet-systemd/pull/33) ([shibumi](https://github.com/shibumi))
-- General cleanup + add Puppet4 datatypes [\#32](https://github.com/camptocamp/puppet-systemd/pull/32) ([bastelfreak](https://github.com/bastelfreak))
-- add management for systemd-resolved [\#31](https://github.com/camptocamp/puppet-systemd/pull/31) ([bastelfreak](https://github.com/bastelfreak))
-- Add a network defined resource [\#30](https://github.com/camptocamp/puppet-systemd/pull/30) ([bastelfreak](https://github.com/bastelfreak))
-- Add seltype to systemd directory [\#27](https://github.com/camptocamp/puppet-systemd/pull/27) ([petems](https://github.com/petems))
-- Add MemoryLimit to limits template [\#23](https://github.com/camptocamp/puppet-systemd/pull/23) ([pkilambi](https://github.com/pkilambi))
-- Update to support Puppet 4 [\#18](https://github.com/camptocamp/puppet-systemd/pull/18) ([trevor-vaughan](https://github.com/trevor-vaughan))
-- Manage resource limits of services [\#13](https://github.com/camptocamp/puppet-systemd/pull/13) ([ruriky](https://github.com/ruriky))
-- Refactor systemd facts [\#12](https://github.com/camptocamp/puppet-systemd/pull/12) ([petems](https://github.com/petems))
-
-## [0.4.0](https://github.com/camptocamp/puppet-systemd/tree/0.4.0) (2016-08-18)
-
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.3.0...0.4.0)
-
-**Closed issues:**
-
-- No LICENSE file [\#11](https://github.com/camptocamp/puppet-systemd/issues/11)
-- Forge update [\#7](https://github.com/camptocamp/puppet-systemd/issues/7)
-
-**Merged pull requests:**
-
-- Add target param for the unit file [\#10](https://github.com/camptocamp/puppet-systemd/pull/10) ([tampakrap](https://github.com/tampakrap))
-- only use awk, instead of grep and awk [\#9](https://github.com/camptocamp/puppet-systemd/pull/9) ([igalic](https://github.com/igalic))
-
-## [0.3.0](https://forge.puppetlabs.com/camptocamp/systemd/0.3.0) (2016-05-16)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.2.2...0.3.0)
-
-**Implemented enhancements:**
-
-- Shortcut for creating unit files / tmpfiles [\#4](https://github.com/camptocamp/puppet-systemd/pull/4) ([felixb](https://github.com/felixb))
-- Add systemd facts [\#6](https://github.com/camptocamp/puppet-systemd/pull/6) ([roidelapluie](https://github.com/roidelapluie))
-
-
-## [0.2.2](https://forge.puppetlabs.com/camptocamp/systemd/0.2.2) (2015-08-25)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.2.1...0.2.2)
-
-**Implemented enhancements:**
-
-- Add 'systemd-tmpfiles-create' [\#1](https://github.com/camptocamp/puppet-systemd/pull/1) ([roidelapluie](https://github.com/roidelapluie))
-
-
-## [0.2.1](https://forge.puppetlabs.com/camptocamp/systemd/0.2.1) (2015-08-21)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.2.0...0.2.1)
-
-- Use docker for acceptance tests
-
-## [0.1.15](https://forge.puppetlabs.com/camptocamp/systemd/0.1.15) (2015-06-26)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.14...0.1.15)
-
-- Fix strict_variables activation with rspec-puppet 2.2
-
-## [0.1.14](https://forge.puppetlabs.com/camptocamp/systemd/0.1.14) (2015-05-28)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.13...0.1.14)
-
-- Add beaker_spec_helper to Gemfile
-
-## [0.1.13](https://forge.puppetlabs.com/camptocamp/systemd/0.1.13) (2015-05-26)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.12...0.1.13)
-
-- Use random application order in nodeset
-
-## [0.1.12](https://forge.puppetlabs.com/camptocamp/systemd/0.1.12) (2015-05-26)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.11...0.1.12)
-
-- Add utopic & vivid nodesets
-
-## [0.1.11](https://forge.puppetlabs.com/camptocamp/systemd/0.1.11) (2015-05-25)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.10...0.1.11)
-
-- Don't allow failure on Puppet 4
-
-## [0.1.10](https://forge.puppetlabs.com/camptocamp/systemd/0.1.10) (2015-05-13)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.9...0.1.10)
-
-- Add puppet-lint-file_source_rights-check gem
-
-## [0.1.9](https://forge.puppetlabs.com/camptocamp/systemd/0.1.9) (2015-05-12)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.8...0.1.9)
-
-- Don't pin beaker
-
-## [0.1.8](https://forge.puppetlabs.com/camptocamp/systemd/0.1.8) (2015-04-27)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.7...0.1.8)
-
-- Add nodeset ubuntu-12.04-x86_64-openstack
-
-## [0.1.7](https://forge.puppetlabs.com/camptocamp/systemd/0.1.7) (2015-04-03)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.6...0.1.7)
-
-- Confine rspec pinning to ruby 1.8
-
-
-\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
+++ /dev/null
-source ENV['GEM_SOURCE'] || "https://rubygems.org"
-
-group :development, :unit_tests do
- gem 'rake', :require => false
- gem 'rspec', :require => false
- gem 'rspec-puppet', :require => false
- gem 'puppetlabs_spec_helper', :require => false
- gem 'metadata-json-lint', :require => false
- gem 'puppet-lint', :require => false
- gem 'puppet-lint-unquoted_string-check', :require => false
- gem 'puppet-lint-empty_string-check', :require => false
- gem 'puppet-lint-spaceship_operator_without_tag-check', :require => false
- gem 'puppet-lint-undef_in_function-check', :require => false
- gem 'puppet-lint-leading_zero-check', :require => false
- gem 'puppet-lint-trailing_comma-check', :require => false
- gem 'puppet-lint-file_ensure-check', :require => false
- gem 'puppet-lint-version_comparison-check', :require => false
- gem 'puppet-lint-file_source_rights-check', :require => false
- gem 'puppet-lint-alias-check', :require => false
- gem 'rspec-puppet-facts', :require => false
- gem 'ruby-augeas', :require => false
- gem 'json_pure', '< 2.0.2', :require => false
-end
-
-group :system_tests do
- gem 'beaker', '~>3.13', :require => false
- gem 'beaker-rspec', '> 5', :require => false
- gem 'beaker_spec_helper', :require => false
- gem 'serverspec', :require => false
- gem 'specinfra', :require => false
-end
-
-if facterversion = ENV['FACTER_GEM_VERSION']
- gem 'facter', facterversion, :require => false
-else
- gem 'facter', :require => false
-end
-
-if puppetversion = ENV['PUPPET_GEM_VERSION']
- gem 'puppet', puppetversion, :require => false
-else
- gem 'puppet', :require => false
-end
-
-group :release do
- gem 'github_changelog_generator', :require => false, :git => 'https://github.com/github-changelog-generator/github-changelog-generator' if RUBY_VERSION >= '2.2.2'
- gem 'puppet-blacksmith', :require => false
- gem 'voxpupuli-release', :require => false, :git => 'https://github.com/voxpupuli/voxpupuli-release-gem'
-end
-
-# vim:ft=ruby
+++ /dev/null
-## [0.3.0](https://forge.puppetlabs.com/camptocamp/systemd/0.3.0) (2016-05-16)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.2.2...0.3.0)
-
-**Implemented enhancements:**
-
-- Shortcut for creating unit files / tmpfiles [\#4](https://github.com/camptocamp/puppet-systemd/pull/4) ([felixb](https://github.com/felixb))
-- Add systemd facts [\#6](https://github.com/camptocamp/puppet-systemd/pull/6) ([roidelapluie](https://github.com/roidelapluie))
-
-
-## [0.2.2](https://forge.puppetlabs.com/camptocamp/systemd/0.2.2) (2015-08-25)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.2.1...0.2.2)
-
-**Implemented enhancements:**
-
-- Add 'systemd-tmpfiles-create' [\#1](https://github.com/camptocamp/puppet-systemd/pull/1) ([roidelapluie](https://github.com/roidelapluie))
-
-
-## [0.2.1](https://forge.puppetlabs.com/camptocamp/systemd/0.2.1) (2015-08-21)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.2.0...0.2.1)
-
-- Use docker for acceptance tests
-
-## [0.1.15](https://forge.puppetlabs.com/camptocamp/systemd/0.1.15) (2015-06-26)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.14...0.1.15)
-
-- Fix strict_variables activation with rspec-puppet 2.2
-
-## [0.1.14](https://forge.puppetlabs.com/camptocamp/systemd/0.1.14) (2015-05-28)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.13...0.1.14)
-
-- Add beaker_spec_helper to Gemfile
-
-## [0.1.13](https://forge.puppetlabs.com/camptocamp/systemd/0.1.13) (2015-05-26)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.12...0.1.13)
-
-- Use random application order in nodeset
-
-## [0.1.12](https://forge.puppetlabs.com/camptocamp/systemd/0.1.12) (2015-05-26)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.11...0.1.12)
-
-- Add utopic & vivid nodesets
-
-## [0.1.11](https://forge.puppetlabs.com/camptocamp/systemd/0.1.11) (2015-05-25)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.10...0.1.11)
-
-- Don't allow failure on Puppet 4
-
-## [0.1.10](https://forge.puppetlabs.com/camptocamp/systemd/0.1.10) (2015-05-13)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.9...0.1.10)
-
-- Add puppet-lint-file_source_rights-check gem
-
-## [0.1.9](https://forge.puppetlabs.com/camptocamp/systemd/0.1.9) (2015-05-12)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.8...0.1.9)
-
-- Don't pin beaker
-
-## [0.1.8](https://forge.puppetlabs.com/camptocamp/systemd/0.1.8) (2015-04-27)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.7...0.1.8)
-
-- Add nodeset ubuntu-12.04-x86_64-openstack
-
-## [0.1.7](https://forge.puppetlabs.com/camptocamp/systemd/0.1.7) (2015-04-03)
-[Full Changelog](https://github.com/camptocamp/puppet-systemd/compare/0.1.6...0.1.7)
-
-- Confine rspec pinning to ruby 1.8
+++ /dev/null
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
+++ /dev/null
-# Systemd
-
-[![Puppet Forge](http://img.shields.io/puppetforge/v/camptocamp/systemd.svg)](https://forge.puppetlabs.com/camptocamp/systemd)
-[![Build Status](https://travis-ci.org/camptocamp/puppet-systemd.png?branch=master)](https://travis-ci.org/camptocamp/puppet-systemd)
-
-## Overview
-
-This module declares exec resources to create global sync points for reloading systemd.
-
-**Version 2 and newer of the module don't work with Hiera 3! You need to migrate your existing Hiera setup to Hiera 5**
-
-## Usage and examples
-
-There are two ways to use this module.
-
-### unit files
-
-Let this module handle file creation and systemd reloading.
-
-```puppet
-systemd::unit_file { 'foo.service':
- source => "puppet:///modules/${module_name}/foo.service",
-}
-~> service {'foo':
- ensure => 'running',
-}
-```
-
-Or handle file creation yourself and trigger systemd.
-
-```puppet
-include systemd::systemctl::daemon_reload
-
-file { '/usr/lib/systemd/system/foo.service':
- ensure => file,
- owner => 'root',
- group => 'root',
- mode => '0644',
- source => "puppet:///modules/${module_name}/foo.service",
-}
-~> Class['systemd::systemctl::daemon_reload']
-
-service {'foo':
- ensure => 'running',
- subscribe => File['/usr/lib/systemd/system/foo.service'],
-}
-```
-
-You can also use this module to more fully manage the new unit. This example deploys the unit, reloads systemd and then enables and starts it.
-
-```puppet
-systemd::unit_file { 'foo.service':
- source => "puppet:///modules/${module_name}/foo.service",
- enable => true,
- active => true,
-}
-```
-
-### drop-in files
-
-Drop-in files are used to add or alter settings of a unit without modifying the
-unit itself. As for the unit files, the module can handle the file and
-directory creation and systemd reloading:
-
-```puppet
-systemd::dropin_file { 'foo.conf':
- unit => 'foo.service',
- source => "puppet:///modules/${module_name}/foo.conf",
-}
-~> service {'foo':
- ensure => 'running',
-}
-```
-
-Or handle file and directory creation yourself and trigger systemd:
-
-```puppet
-include systemd::systemctl::daemon_reload
-
-file { '/etc/systemd/system/foo.service.d':
- ensure => directory,
- owner => 'root',
- group => 'root',
-}
-
-file { '/etc/systemd/system/foo.service.d/foo.conf':
- ensure => file,
- owner => 'root',
- group => 'root',
- mode => '0644',
- source => "puppet:///modules/${module_name}/foo.conf",
-}
-~> Class['systemd::systemctl::daemon_reload']
-
-service {'foo':
- ensure => 'running',
- subscribe => File['/etc/systemd/system/foo.service.d/foo.conf'],
-}
-```
-
-### tmpfiles
-
-Let this module handle file creation and systemd reloading
-
-```puppet
-systemd::tmpfile { 'foo.conf':
- source => "puppet:///modules/${module_name}/foo.conf",
-}
-```
-
-Or handle file creation yourself and trigger systemd.
-
-```puppet
-include systemd::tmpfiles
-
-file { '/etc/tmpfiles.d/foo.conf':
- ensure => file,
- owner => 'root',
- group => 'root',
- mode => '0644',
- source => "puppet:///modules/${module_name}/foo.conf",
-}
-~> Class['systemd::tmpfiles']
-```
-
-### service limits
-
-Manage soft and hard limits on various resources for executed processes.
-
-```puppet
-systemd::service_limits { 'foo.service':
- limits => {
- 'LimitNOFILE' => 8192,
- 'LimitNPROC' => 16384,
- }
-}
-```
-
-Or provide the configuration file yourself. Systemd reloading and restarting of the service are handled by the module.
-
-```puppet
-systemd::service_limits { 'foo.service':
- source => "puppet:///modules/${module_name}/foo.conf",
-}
-```
-
-### network
-
-systemd-networkd is able to manage your network configuration. We provide a
-defined resource which can write the interface configurations. systemd-networkd
-needs to be restarted to apply the configs. The defined resource can do this
-for you:
-
-```puppet
-systemd::network{'eth0.network':
- source => "puppet:///modules/${module_name}/eth0.network",
- restart_service => true,
-}
-```
-
-### Services
-
-Systemd provides multiple services. Currently you can manage `systemd-resolved`,
-`systemd-timesyncd` and `systemd-networkd` via the main class:
-
-```puppet
-class{'systemd':
- manage_resolved => true,
- manage_networkd => true,
- manage_timesyncd => true,
-}
-```
-
-$manage_networkd is required if you want to reload it for new
-`systemd::network` resources. Setting $manage_resolved will also manage your
-`/etc/resolv.conf`.
-
-When configuring `systemd::resolved` you could set `dns_stub_resolver` to false (default) to use a *standard* `/etc/resolved.conf`, or you could set it to `true` to use the local resolver provided by `systemd-resolved`.
-
-It is possible to configure the default ntp servers in /etc/systemd/timesyncd.conf:
-
-```puppet
-class{'systemd':
- manage_timesyncd => true,
- ntp_server => ['0.pool.ntp.org', '1.pool.ntp.org'],
- fallback_ntp_server => ['2.pool.ntp.org', '3.pool.ntp.org'],
-}
-```
-
-This requires puppetlabs-inifile, which is only a soft dependency in this module (you need to explicitly install it). Both parameters accept a string or an array.
-
-### Resource Accounting
-
-Systemd has support for different accounting option. It can track
-CPU/Memory/Network stats per process. This is explained in depth at [systemd-system.conf](https://www.freedesktop.org/software/systemd/man/systemd-system.conf.html).
-This defaults to off (default on most operating systems). You can enable this
-with the `$manage_accounting` parameter. The module provides a default set of
-working accounting options per operating system, but you can still modify them
-with `$accounting`:
-
-```puppet
-class{'systemd':
- manage_accounting => true,
- accounting => {
- 'DefaultCPUAccounting' => 'yes',
- 'DefaultMemoryAccounting' => 'no',
- }
-}
-```
+++ /dev/null
-require 'puppetlabs_spec_helper/rake_tasks'
-require 'puppet-lint/tasks/puppet-lint'
-
-Rake::Task[:lint].clear
-PuppetLint::RakeTask.new :lint do |config|
- config.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp", "vendor/**/*.pp"]
- config.disable_checks = ['140chars']
- config.fail_on_warnings = true
-end
-
-PuppetSyntax.exclude_paths = ["spec/fixtures/**/*.pp", "vendor/**/*"]
-
-# Publishing tasks
-unless RUBY_VERSION =~ /^1\./
- require 'puppet_blacksmith'
- require 'puppet_blacksmith/rake_tasks'
-end
-
-begin
- require 'github_changelog_generator/task'
- GitHubChangelogGenerator::RakeTask.new :changelog do |config|
- version = (Blacksmith::Modulefile.new).version
- config.future_release = "v#{version}" if version =~ /^\d+\.\d+.\d+$/
- config.header = "# Changelog\n\nAll notable changes to this project will be documented in this file.\nEach new release typically also includes the latest modulesync defaults.\nThese should not affect the functionality of the module."
- config.exclude_labels = %w{duplicate question invalid wontfix wont-fix modulesync skip-changelog}
- config.user = 'camptocamp'
- config.project = 'puppet-systemd'
- end
-rescue LoadError
-end
+++ /dev/null
-{
- "CHANGELOG.md": "1b6c3b3fcf40b2101eef09115d45e98f",
- "Gemfile": "63d22a26acea65c0d337e1677b06de7b",
- "HISTORY.md": "058e58d38f4298469cc4b9650e89e023",
- "LICENSE": "0e5ccf641e613489e66aa98271dbe798",
- "README.md": "256953c827e54aa7284bcfba675d4f76",
- "Rakefile": "b638dcdf3d4b865f9944e70050696169",
- "data/Archlinux.yaml": "132d2a05bfbbeeb2e1768c5d5e5465a4",
- "data/CentOS-7.yaml": "4cd858563b8d1f09bd41b63ee3aaca46",
- "data/Debian-10.yaml": "132d2a05bfbbeeb2e1768c5d5e5465a4",
- "data/Debian-8.yaml": "cda4a0c67b5c02694714a275a1558862",
- "data/Debian-9.yaml": "cda4a0c67b5c02694714a275a1558862",
- "data/RedHat-7.yaml": "4cd858563b8d1f09bd41b63ee3aaca46",
- "data/Ubuntu-16.04.yaml": "4cd858563b8d1f09bd41b63ee3aaca46",
- "data/Ubuntu-18.04.yaml": "132d2a05bfbbeeb2e1768c5d5e5465a4",
- "data/common.yaml": "e7abdb8d7975b5bba8149f5219d3581d",
- "hiera.yaml": "95af0fd82f551cb12fe923d67ee0fca7",
- "lib/facter/systemd.rb": "097bfc197ee80791b7fc5ffbedc68fad",
- "manifests/dropin_file.pp": "0c9331bb7eb38710fdff0adbc074270d",
- "manifests/init.pp": "0661761117910d6b4c2f90487c424353",
- "manifests/network.pp": "71e5a66c79c86ce5d6105946dccc82f9",
- "manifests/networkd.pp": "2dd4681c21305be938d80a1cf7542d1b",
- "manifests/resolved.pp": "7985eb5806782d5ec0d54c22c7221a2c",
- "manifests/service_limits.pp": "1e9f75395c8db15af5c42add5986a113",
- "manifests/system.pp": "87fd2802ee517be1bbc29a1ab7cab717",
- "manifests/systemctl/daemon_reload.pp": "e7168a9f55ea3d8209cf3097631aae1e",
- "manifests/timesyncd.pp": "b495e114d5d44edff2ea41ea180db0b5",
- "manifests/tmpfile.pp": "50f7cad2c6cb6f5b2bc16004f4e0551b",
- "manifests/tmpfiles.pp": "c19150a103c3b883434437cc3f6618d7",
- "manifests/unit_file.pp": "222f6960266abdddeb5ef96610831627",
- "metadata.json": "55ec7b886dce87aea3b5b8ad8c022f90",
- "spec/acceptance/nodesets/centos-5-x86_64-docker.yml": "916223adf56a5eae28fc4dbc8d3d5d09",
- "spec/acceptance/nodesets/centos-5.yml": "329c2ecf383375a296316540b17dead8",
- "spec/acceptance/nodesets/centos-6-x86_64-docker.yml": "79ee475e5497307c173a1aba59e1a206",
- "spec/acceptance/nodesets/centos-6-x86_64-openstack.yml": "5509e2ebb2bee49bec7905141d91535b",
- "spec/acceptance/nodesets/centos-6-x86_64-vagrant.yml": "f973bde1c355b0af3ba5c08e02311580",
- "spec/acceptance/nodesets/centos-6.yml": "f0e3e5327185edaab414af3371e86c98",
- "spec/acceptance/nodesets/centos-7-x86_64-docker.yml": "1d4713c4b0788eaaed0a5767ba0268d4",
- "spec/acceptance/nodesets/centos-7-x86_64-openstack.yml": "554374fca1889b858d90a81226578b82",
- "spec/acceptance/nodesets/centos-7-x86_64-vagrant.yml": "82b8ada243c70d9a2d8c9a3a4385416c",
- "spec/acceptance/nodesets/centos-7.yml": "64e996635943b77309efcf2a0c6d3c02",
- "spec/acceptance/nodesets/debian-6-x86_64-docker.yml": "d6cb2154bf149715439b5bc64ef627bc",
- "spec/acceptance/nodesets/debian-6-x86_64-openstack.yml": "83b0b0ecb7212b45179546ac6b6b83b7",
- "spec/acceptance/nodesets/debian-6-x86_64-vagrant.yml": "d6356946a61858342d0be2b6b670eb55",
- "spec/acceptance/nodesets/debian-6.yml": "4078ec869c78a6bb51a0bcfa350cc674",
- "spec/acceptance/nodesets/debian-7-x86_64-docker.yml": "2d68216014870420714f306fb3aaa601",
- "spec/acceptance/nodesets/debian-7-x86_64-openstack.yml": "47f0b02b2d6ea2134574f045e9a315af",
- "spec/acceptance/nodesets/debian-7-x86_64-vagrant.yml": "2dacc8c1cce7bc4fa8e3b13267df9ecd",
- "spec/acceptance/nodesets/debian-7.yml": "7ff246ef2e9a9f2b957eacc1d2274898",
- "spec/acceptance/nodesets/debian-8-x86_64-docker.yml": "d7fb01335b3273723b8b418faef51538",
- "spec/acceptance/nodesets/debian-8-x86_64-openstack.yml": "075a6d6389a6b6cbe3b11f7a6e160059",
- "spec/acceptance/nodesets/debian-8-x86_64-vagrant.yml": "9c33b450b4aa17476acc86d839d79dd2",
- "spec/acceptance/nodesets/debian-8.yml": "7cc01dfb4cf846bba1fff66a6cceab66",
- "spec/acceptance/nodesets/ubuntu-10.04-x86_64-docker.yml": "11480a9d30e9c4daee140dd420176723",
- "spec/acceptance/nodesets/ubuntu-12.04-x86_64-docker.yml": "46cc4eceef33f04818ce74855630e05b",
- "spec/acceptance/nodesets/ubuntu-12.04-x86_64-openstack.yml": "d1619ba4430c1a61cd9407533ac91de2",
- "spec/acceptance/nodesets/ubuntu-12.04.yml": "5e21f60e951be4936f6bca1031553808",
- "spec/acceptance/nodesets/ubuntu-14.04-x86_64-docker.yml": "5390c092066afa65780816b162dfb4aa",
- "spec/acceptance/nodesets/ubuntu-14.04-x86_64-openstack.yml": "535b98aa7c5d0df88817675af991d2b6",
- "spec/acceptance/nodesets/ubuntu-14.04-x86_64-vagrant.yml": "8622e2d9cae7a0923b8510561f1daf5a",
- "spec/acceptance/nodesets/ubuntu-14.04.yml": "7614de568fe061eed346e987e0f80bbd",
- "spec/acceptance/nodesets/ubuntu-14.10-x86_64-docker.yml": "df4b8f4bd33f38e0053a806d739db819",
- "spec/acceptance/nodesets/ubuntu-14.10-x86_64-openstack.yml": "cdfa94d70efdcbb4ae0e9caea474c4b1",
- "spec/acceptance/nodesets/ubuntu-14.10.yml": "b3671a973bdc6386af78925d6471e951",
- "spec/acceptance/nodesets/ubuntu-15.04-x86_64-docker.yml": "cefdea8d6ead29b5f492adb971019a81",
- "spec/acceptance/nodesets/ubuntu-15.04-x86_64-openstack.yml": "60a9ce9983e881df4b83c2720dc014ed",
- "spec/acceptance/nodesets/ubuntu-15.04.yml": "cea5658fe126394b01e94286e7854fd1",
- "spec/acceptance/nodesets/ubuntu-15.10.yml": "6bc135e884164d541704dfb00ba09a3c",
- "spec/acceptance/nodesets/ubuntu-16.04.yml": "17dc63e8b2a15a5285c6aca6d91b4aec",
- "spec/classes/init_spec.rb": "67731efaaf6790f0696988a62f3e85a3",
- "spec/classes/systemctl/daemon_reload_spec.rb": "cb9a0300c2318103d9bbf0e4b4f65aa1",
- "spec/classes/tmpfiles_spec.rb": "0e5b6c4057f66fe169217c08f3814c38",
- "spec/default_module_facts.yaml": "d0967d84ae8037c7ec7f1d52f14de7df",
- "spec/defines/dropin_file_spec.rb": "d7fa0e4a9bfaba40965ed81880df1098",
- "spec/defines/network_spec.rb": "b7a0ec46c10eb5b68b05ecda934f2422",
- "spec/defines/service_limits_spec.rb": "758243b295ca9a92021576569c7f3dd3",
- "spec/defines/tmpfile_spec.rb": "d1050916e84502cb022764435004d008",
- "spec/defines/unit_file_spec.rb": "9ad980913d445255f846d2fae749f9f9",
- "spec/spec.opts": "a600ded995d948e393fbe2320ba8e51c",
- "spec/spec_helper.rb": "1524f103a4d70c412ed1794e50e614a5",
- "spec/unit/facter/systemd_spec.rb": "60ddfbee71614dc0e822a44199baa283",
- "spec/unit/facter/systemd_version_spec.rb": "14f915e98f11a610c8513c39dc0ddc55",
- "templates/limits.erb": "8e18a431f012d940ac22e0a98da8f115",
- "types/dropin.pp": "14af455c863528e9b1d546a757a756b2",
- "types/servicelimits.pp": "c6750c64ee955b2cabc852473d3c67f2",
- "types/unit.pp": "ab1246b0129a8f1728347585bafb149c"
-}
\ No newline at end of file
+++ /dev/null
----
-systemd::accounting:
- DefaultCPUAccounting: 'yes'
- DefaultIOAccounting: 'yes'
- DefaultIPAccounting: 'yes'
- DefaultBlockIOAccounting: 'yes'
- DefaultMemoryAccounting: 'yes'
- DefaultTasksAccounting: 'yes'
+++ /dev/null
----
-systemd::accounting:
- DefaultCPUAccounting: 'yes'
- DefaultBlockIOAccounting: 'yes'
- DefaultMemoryAccounting: 'yes'
- DefaultTasksAccounting: 'yes'
+++ /dev/null
----
-systemd::accounting:
- DefaultCPUAccounting: 'yes'
- DefaultIOAccounting: 'yes'
- DefaultIPAccounting: 'yes'
- DefaultBlockIOAccounting: 'yes'
- DefaultMemoryAccounting: 'yes'
- DefaultTasksAccounting: 'yes'
+++ /dev/null
----
-systemd::accounting:
- DefaultCPUAccounting: 'yes'
- DefaultBlockIOAccounting: 'yes'
- DefaultMemoryAccounting: 'yes'
+++ /dev/null
----
-systemd::accounting:
- DefaultCPUAccounting: 'yes'
- DefaultBlockIOAccounting: 'yes'
- DefaultMemoryAccounting: 'yes'
+++ /dev/null
----
-systemd::accounting:
- DefaultCPUAccounting: 'yes'
- DefaultBlockIOAccounting: 'yes'
- DefaultMemoryAccounting: 'yes'
- DefaultTasksAccounting: 'yes'
+++ /dev/null
----
-systemd::accounting:
- DefaultCPUAccounting: 'yes'
- DefaultBlockIOAccounting: 'yes'
- DefaultMemoryAccounting: 'yes'
- DefaultTasksAccounting: 'yes'
+++ /dev/null
----
-systemd::accounting:
- DefaultCPUAccounting: 'yes'
- DefaultIOAccounting: 'yes'
- DefaultIPAccounting: 'yes'
- DefaultBlockIOAccounting: 'yes'
- DefaultMemoryAccounting: 'yes'
- DefaultTasksAccounting: 'yes'
+++ /dev/null
----
-systemd::service_limits: {}
-systemd::manage_resolved: false
-systemd::resolved_ensure: 'running'
-systemd::dns: ~
-systemd::fallback_dns: ~
-systemd::domains: ~
-systemd::llmnr: ~
-systemd::multicast_dns: ~
-systemd::dnssec: ~
-systemd::cache: false
-systemd::dns_stub_listener: ~
-systemd::use_stub_resolver: false
-systemd::manage_networkd: false
-systemd::networkd_ensure: 'running'
-systemd::manage_timesyncd: false
-systemd::timesyncd_ensure: 'running'
-systemd::ntp_server: ~
-systemd::fallback_ntp_server: ~
-systemd::manage_accounting: false
-systemd::accounting: {}
+++ /dev/null
-# Fact: systemd
-#
-# Purpose:
-# Determine whether systemd is the init system on the node
-#
-# Resolution:
-# Check if the service_provider fact is systemd
-#
-# Caveats:
-# If you override the service provider then it will return false, even if the
-# underlying system still is systemd.
-#
-
-# Fact: systemd_version
-#
-# Purpose:
-# Determine the version of systemd installed
-#
-# Resolution:
-# Check the output of systemctl --version
-#
-# Caveats:
-#
-
-# Fact: systemd_internal_services
-#
-# Purpose:
-# List all systemd internal real services + their state
-#
-# Resolution:
-# Check the output of systemctl --list-unit-files systemd-* and parse it into
-# a hash with the status
-#
-# Caveats:
-#
-Facter.add(:systemd) do
- confine :kernel => :linux
- setcode do
- Facter.value(:service_provider) == 'systemd'
- end
-end
-
-Facter.add(:systemd_version) do
- confine :systemd => true
- setcode do
- Facter::Util::Resolution.exec("systemctl --version | awk '/systemd/{ print $2 }'")
- end
-end
-
-Facter.add(:systemd_internal_services) do
- confine :systemd => true
- setcode do
- command_output = Facter::Util::Resolution.exec(
- 'systemctl list-unit-files --no-legend --no-pager "systemd-*" -t service --state=enabled,disabled,enabled-runtime,indirect'
- )
- lines = command_output.lines.lazy.map { |line| line.split(/\s+/) }
- lines.each_with_object({}) do |(service, status, *), result|
- result[service] = status
- end
- end
-end
+++ /dev/null
-# Creates a drop-in file for a systemd unit
-#
-# @api public
-#
-# @see systemd.unit(5)
-#
-# @attr name [Pattern['^.+\.conf$']]
-# The target unit file to create
-#
-# * Must not contain ``/``
-#
-# @attr path
-# The main systemd configuration path
-#
-# @attr content
-# The full content of the unit file
-#
-# * Mutually exclusive with ``$source``
-#
-# @attr source
-# The ``File`` resource compatible ``source``
-#
-# * Mutually exclusive with ``$content``
-#
-# @attr target
-# If set, will force the file to be a symlink to the given target
-#
-# * Mutually exclusive with both ``$source`` and ``$content``
-#
-define systemd::dropin_file(
- Systemd::Unit $unit,
- Systemd::Dropin $filename = $name,
- Enum['present', 'absent', 'file'] $ensure = 'present',
- Stdlib::Absolutepath $path = '/etc/systemd/system',
- Optional[String] $content = undef,
- Optional[String] $source = undef,
- Optional[Stdlib::Absolutepath] $target = undef,
-) {
- include systemd
-
- if $target {
- $_ensure = 'link'
- } else {
- $_ensure = $ensure ? {
- 'present' => 'file',
- default => $ensure,
- }
- }
-
- if $ensure != 'absent' {
- ensure_resource('file', "${path}/${unit}.d", {
- ensure => directory,
- owner => 'root',
- group => 'root',
- })
- }
-
- file { "${path}/${unit}.d/${filename}":
- ensure => $_ensure,
- content => $content,
- source => $source,
- target => $target,
- owner => 'root',
- group => 'root',
- mode => '0444',
- notify => Class['systemd::systemctl::daemon_reload'],
- }
-}
+++ /dev/null
-# This module allows triggering systemd commands once for all modules
-#
-# @api public
-#
-# @param service_limits
-# May be passed a resource hash suitable for passing directly into the
-# ``create_resources()`` function as called on ``systemd::service_limits``
-#
-# @param manage_resolved
-# Manage the systemd resolver
-#
-# @param resolved_ensure
-# The state that the ``resolved`` service should be in
-#
-# @param dns
-# A space-separated list of IPv4 and IPv6 addresses to use as system DNS servers.
-# DNS requests are sent to one of the listed DNS servers in parallel to suitable
-# per-link DNS servers acquired from systemd-networkd.service(8) or set at runtime
-# by external applications. requires puppetlabs-inifile
-#
-# @param fallback_dns
-# A space-separated list of IPv4 and IPv6 addresses to use as the fallback DNS
-# servers. Any per-link DNS servers obtained from systemd-networkd take
-# precedence over this setting. requires puppetlabs-inifile
-#
-# @param domains
-# A space-separated list of domains host names or IP addresses to be used
-# systemd-resolved take precedence over this setting.
-#
-# @param llmnr
-# Takes a boolean argument or "resolve".
-#
-# @param multicast_dns
-# Takes a boolean argument or "resolve".
-#
-# @param dnssec
-# Takes a boolean argument or "allow-downgrade".
-#
-# @param cache
-# Takes a boolean argument.
-#
-# @param dns_stub_listener
-# Takes a boolean argument or one of "udp" and "tcp".
-#
-# @param use_stub_resolver
-# Takes a boolean argument. When "false" (default) it uses /var/run/systemd/resolve/resolv.conf
-# as /etc/resolv.conf. When "true", it uses /var/run/systemd/resolve/stub-resolv.conf
-# @param manage_networkd
-# Manage the systemd network daemon
-#
-# @param networkd_ensure
-# The state that the ``networkd`` service should be in
-#
-# @param manage_timesyncd
-# Manage the systemd tiemsyncd daemon
-#
-# @param timesyncd_ensure
-# The state that the ``timesyncd`` service should be in
-#
-# @param ntp_server
-# comma separated list of ntp servers, will be combined with interface specific
-# addresses from systemd-networkd. requires puppetlabs-inifile
-#
-# @param fallback_ntp_server
-# A space-separated list of NTP server host names or IP addresses to be used
-# as the fallback NTP servers. Any per-interface NTP servers obtained from
-# systemd-networkd take precedence over this setting. requires puppetlabs-inifile
-class systemd (
- Hash[String,Hash[String, Any]] $service_limits,
- Boolean $manage_resolved,
- Enum['stopped','running'] $resolved_ensure,
- Optional[Variant[Array[String],String]] $dns,
- Optional[Variant[Array[String],String]] $fallback_dns,
- Optional[Variant[Array[String],String]] $domains,
- Optional[Variant[Boolean,Enum['resolve']]] $llmnr,
- Optional[Variant[Boolean,Enum['resolve']]] $multicast_dns,
- Optional[Variant[Boolean,Enum['allow-downgrade']]] $dnssec,
- Boolean $cache,
- Optional[Variant[Boolean,Enum['udp','tcp']]] $dns_stub_listener,
- Boolean $use_stub_resolver,
- Boolean $manage_networkd,
- Enum['stopped','running'] $networkd_ensure,
- Boolean $manage_timesyncd,
- Enum['stopped','running'] $timesyncd_ensure,
- Optional[Variant[Array,String]] $ntp_server,
- Optional[Variant[Array,String]] $fallback_ntp_server,
- Boolean $manage_accounting,
- Hash[String,String] $accounting,
-){
-
- contain systemd::systemctl::daemon_reload
-
- create_resources('systemd::service_limits', $service_limits)
-
- if $manage_resolved and $facts['systemd_internal_services'] and $facts['systemd_internal_services']['systemd-resolved.service'] {
- contain systemd::resolved
- }
-
- if $manage_networkd and $facts['systemd_internal_services'] and $facts['systemd_internal_services']['systemd-networkd.service'] {
- contain systemd::networkd
- }
-
- if $manage_timesyncd and $facts['systemd_internal_services'] and $facts['systemd_internal_services']['systemd-timesyncd.service'] {
- contain systemd::timesyncd
- }
-
- if $manage_accounting {
- contain systemd::system
- }
-}
+++ /dev/null
-# -- Define: systemd::network
-# Creates network config for systemd-networkd
-define systemd::network (
- Enum['file', 'absent'] $ensure = file,
- Stdlib::Absolutepath $path = '/etc/systemd/network',
- Optional[String] $content = undef,
- Optional[String] $source = undef,
- Optional[Stdlib::Absolutepath] $target = undef,
- Boolean $restart_service = true,
-){
-
- include systemd
-
- if $restart_service and $systemd::manage_networkd {
- $notify = Service['systemd-networkd']
- } else {
- $notify = undef
- }
-
- file { "${path}/${name}":
- ensure => $ensure,
- content => $content,
- source => $source,
- target => $target,
- owner => 'root',
- group => 'root',
- mode => '0444',
- notify => $notify,
- }
-}
+++ /dev/null
-# **NOTE: THIS IS A [PRIVATE](https://github.com/puppetlabs/puppetlabs-stdlib#assert_private) CLASS**
-#
-# This class provides an abstract way to trigger systemd-networkd
-#
-# @param ensure
-# The state that the ``networkd`` service should be in
-#
-class systemd::networkd (
- Enum['stopped','running'] $ensure = $systemd::networkd_ensure,
-){
-
- assert_private()
-
- $_enable_networkd = $ensure ? {
- 'stopped' => false,
- 'running' => true,
- default => $ensure,
- }
-
- service{ 'systemd-networkd':
- ensure => $ensure,
- enable => $_enable_networkd,
- }
-}
+++ /dev/null
-# **NOTE: THIS IS A [PRIVATE](https://github.com/puppetlabs/puppetlabs-stdlib#assert_private) CLASS**
-#
-# This class provides an abstract way to trigger resolved.
-# Each parameters correspond to resolved.conf(5):
-# https://www.freedesktop.org/software/systemd/man/resolved.conf.html
-#
-# @param ensure
-# The state that the ``resolved`` service should be in
-#
-# @param dns
-# A space-separated list of IPv4 and IPv6 addresses to use as system DNS servers.
-# DNS requests are sent to one of the listed DNS servers in parallel to suitable
-# per-link DNS servers acquired from systemd-networkd.service(8) or set at runtime
-# by external applications. requires puppetlabs-inifile
-#
-# @param fallback_dns
-# A space-separated list of IPv4 and IPv6 addresses to use as the fallback DNS
-# servers. Any per-link DNS servers obtained from systemd-networkd take
-# precedence over this setting. requires puppetlabs-inifile
-#
-# @param domains
-# A space-separated list of domains host names or IP addresses to be used
-# systemd-resolved take precedence over this setting.
-#
-# @param llmnr
-# Takes a boolean argument or "resolve".
-#
-# @param multicast_dns
-# Takes a boolean argument or "resolve".
-#
-# @param dnssec
-# Takes a boolean argument or "allow-downgrade".
-#
-# @param cache
-# Takes a boolean argument.
-#
-# @param dns_stub_listener
-# Takes a boolean argument or one of "udp" and "tcp".
-#
-# @param use_stub_resolver
-# Takes a boolean argument. When "false" (default) it uses /var/run/systemd/resolve/resolv.conf
-# as /etc/resolv.conf. When "true", it uses /var/run/systemd/resolve/stub-resolv.conf
-#
-class systemd::resolved (
- Enum['stopped','running'] $ensure = $systemd::resolved_ensure,
- Optional[Variant[Array[String],String]] $dns = $systemd::dns,
- Optional[Variant[Array[String],String]] $fallback_dns = $systemd::fallback_dns,
- Optional[Variant[Array[String],String]] $domains = $systemd::domains,
- Optional[Variant[Boolean,Enum['resolve']]] $llmnr = $systemd::llmnr,
- Optional[Variant[Boolean,Enum['resolve']]] $multicast_dns = $systemd::multicast_dns,
- Optional[Variant[Boolean,Enum['allow-downgrade']]] $dnssec = $systemd::dnssec,
- Boolean $cache = $systemd::cache,
- Optional[Variant[Boolean,Enum['udp', 'tcp']]] $dns_stub_listener = $systemd::dns_stub_listener,
- Boolean $use_stub_resolver = $systemd::use_stub_resolver,
-){
-
- assert_private()
-
- $_enable_resolved = $ensure ? {
- 'stopped' => false,
- 'running' => true,
- default => $ensure,
- }
-
- service { 'systemd-resolved':
- ensure => $ensure,
- enable => $_enable_resolved,
- }
-
- $_resolv_conf_target = $use_stub_resolver ? {
- true => '/run/systemd/resolve/stub-resolv.conf',
- default => '/run/systemd/resolve/resolv.conf',
- }
- file { '/etc/resolv.conf':
- ensure => 'symlink',
- target => $_resolv_conf_target,
- require => Service['systemd-resolved'],
- }
-
- if $dns {
- if $dns =~ String {
- $_dns = $dns
- } else {
- $_dns = join($dns, ' ')
- }
- ini_setting{ 'dns':
- ensure => 'present',
- value => $_dns,
- setting => 'DNS',
- section => 'Resolve',
- path => '/etc/systemd/resolved.conf',
- notify => Service['systemd-resolved'],
- }
- }
-
- if $fallback_dns {
- if $fallback_dns =~ String {
- $_fallback_dns = $fallback_dns
- } else {
- $_fallback_dns = join($fallback_dns, ' ')
- }
- ini_setting{ 'fallback_dns':
- ensure => 'present',
- value => $_fallback_dns,
- setting => 'FallbackDNS',
- section => 'Resolve',
- path => '/etc/systemd/resolved.conf',
- notify => Service['systemd-resolved'],
- }
- }
-
- if $domains {
- if $domains =~ String {
- $_domains = $domains
- } else {
- $_domains = join($domains, ' ')
- }
- ini_setting{ 'domains':
- ensure => 'present',
- value => $_domains,
- setting => 'Domains',
- section => 'Resolve',
- path => '/etc/systemd/resolved.conf',
- notify => Service['systemd-resolved'],
- }
- }
-
- $_llmnr = $llmnr ? {
- true => 'yes',
- false => 'no',
- default => $llmnr,
- }
-
- if $_llmnr {
- ini_setting{ 'llmnr':
- ensure => 'present',
- value => $_llmnr,
- setting => 'LLMNR',
- section => 'Resolve',
- path => '/etc/systemd/resolved.conf',
- notify => Service['systemd-resolved'],
- }
- }
-
- $_multicast_dns = $multicast_dns ? {
- true => 'yes',
- false => 'no',
- default => $multicast_dns,
- }
-
- if $_multicast_dns {
- ini_setting{ 'multicast_dns':
- ensure => 'present',
- value => $_multicast_dns,
- setting => 'MulticastDNS',
- section => 'Resolve',
- path => '/etc/systemd/resolved.conf',
- notify => Service['systemd-resolved'],
- }
- }
-
- $_dnssec = $dnssec ? {
- true => 'yes',
- false => 'no',
- default => $dnssec,
- }
-
- if $_dnssec {
- ini_setting{ 'dnssec':
- ensure => 'present',
- value => $_dnssec,
- setting => 'DNSSEC',
- section => 'Resolve',
- path => '/etc/systemd/resolved.conf',
- notify => Service['systemd-resolved'],
- }
- }
-
- $_cache = $cache ? {
- true => 'yes',
- false => 'no',
- }
-
- if $cache {
- ini_setting{ 'cache':
- ensure => 'present',
- value => $_cache,
- setting => 'Cache',
- section => 'Resolve',
- path => '/etc/systemd/resolved.conf',
- notify => Service['systemd-resolved'],
- }
- }
-
- $_dns_stub_listener = $dns_stub_listener ? {
- true => 'yes',
- false => 'no',
- default => $dns_stub_listener,
- }
-
- if $_dns_stub_listener {
- ini_setting{ 'dns_stub_listener':
- ensure => 'present',
- value => $_dns_stub_listener,
- setting => 'DNSStubListener',
- section => 'Resolve',
- path => '/etc/systemd/resolved.conf',
- notify => Service['systemd-resolved'],
- }
- }
-
-}
+++ /dev/null
-# Adds a set of custom limits to the service
-#
-# @api public
-#
-# @see systemd.exec(5)
-#
-# @attr name [Pattern['^.+\.(service|socket|mount|swap)$']]
-# The name of the service that you will be modifying
-#
-# @param $ensure
-# Whether to drop a file or remove it
-#
-# @param path
-# The path to the main systemd settings directory
-#
-# @param limits
-# A Hash of service limits matching the settings in ``systemd.exec(5)``
-#
-# * Mutually exclusive with ``$source``
-#
-# @param source
-# A ``File`` resource compatible ``source``
-#
-# * Mutually exclusive with ``$limits``
-#
-# @param restart_service
-# Restart the managed service after setting the limits
-#
-define systemd::service_limits(
- Enum['present', 'absent', 'file'] $ensure = 'present',
- Stdlib::Absolutepath $path = '/etc/systemd/system',
- Optional[Systemd::ServiceLimits] $limits = undef,
- Optional[String] $source = undef,
- Boolean $restart_service = true
-) {
-
- include systemd
-
- if $name !~ Pattern['^.+\.(service|socket|mount|swap)$'] {
- fail('$name must match Pattern["^.+\.(service|socket|mount|swap)$"]')
- }
-
- if $limits and !empty($limits) {
- $_content = template("${module_name}/limits.erb")
- }
- else {
- $_content = undef
- }
-
- if $ensure != 'absent' {
- if ($limits and !empty($limits)) and $source {
- fail('You may not supply both limits and source parameters to systemd::service_limits')
- }
- elsif ($limits == undef or empty($limits)) and ($source == undef) {
- fail('You must supply either the limits or source parameter to systemd::service_limits')
- }
- }
-
- systemd::dropin_file { "${name}-90-limits.conf":
- ensure => $ensure,
- unit => $name,
- filename => '90-limits.conf',
- path => $path,
- content => $_content,
- source => $source,
- }
-
- if $restart_service {
- exec { "restart ${name} because limits":
- command => "systemctl restart ${name}",
- path => $::path,
- refreshonly => true,
- subscribe => File["${path}/${name}.d/90-limits.conf"],
- require => Class['systemd::systemctl::daemon_reload'],
- }
- }
-}
+++ /dev/null
-# **NOTE: THIS IS A [PRIVATE](https://github.com/puppetlabs/puppetlabs-stdlib#assert_private) CLASS**
-#
-# This class provides a solution to enable accounting
-#
-class systemd::system {
-
- assert_private()
-
- $systemd::accounting.each |$option, $value| {
- ini_setting{$option:
- ensure => 'present',
- path => '/etc/systemd/system.conf',
- section => 'Manager',
- setting => $option,
- value => $value,
- notify => Class['systemd::systemctl::daemon_reload'],
- }
- }
-}
+++ /dev/null
-# Reload the systemctl daemon
-#
-# @api public
-class systemd::systemctl::daemon_reload {
- exec { 'systemctl-daemon-reload':
- command => 'systemctl daemon-reload',
- refreshonly => true,
- path => $facts['path'],
- }
-}
+++ /dev/null
-# **NOTE: THIS IS A [PRIVATE](https://github.com/puppetlabs/puppetlabs-stdlib#assert_private) CLASS**
-#
-# This class provides an abstract way to trigger systemd-timesyncd
-#
-# @param ensure
-# The state that the ``networkd`` service should be in
-#
-# @param $ntp_server
-# A space-separated list of NTP servers, will be combined with interface specific
-# addresses from systemd-networkd. requires puppetlabs-inifile
-#
-# @param fallback_ntp_server
-# A space-separated list of NTP server host names or IP addresses to be used
-# as the fallback NTP servers. Any per-interface NTP servers obtained from
-# systemd-networkd take precedence over this setting. requires puppetlabs-inifile
-class systemd::timesyncd (
- Enum['stopped','running'] $ensure = $systemd::timesyncd_ensure,
- Optional[Variant[Array,String]] $ntp_server = $systemd::ntp_server,
- Optional[Variant[Array,String]] $fallback_ntp_server = $systemd::fallback_ntp_server,
-){
-
- assert_private()
-
- $_enable_timesyncd = $ensure ? {
- 'stopped' => false,
- 'running' => true,
- default => $ensure,
- }
-
- service{ 'systemd-timesyncd':
- ensure => $ensure,
- enable => $_enable_timesyncd,
- }
-
- if $ntp_server {
- if $ntp_server =~ String {
- $_ntp_server = $ntp_server
- } else {
- $_ntp_server = join($ntp_server, ' ')
- }
- ini_setting{'ntp_server':
- ensure => 'present',
- value => $_ntp_server,
- setting => 'NTP',
- section => 'Time',
- path => '/etc/systemd/timesyncd.conf',
- notify => Service['systemd-timesyncd'],
- }
- }
-
- if $fallback_ntp_server {
- if $fallback_ntp_server =~ String {
- $_fallback_ntp_server = $fallback_ntp_server
- } else {
- $_fallback_ntp_server = join($fallback_ntp_server, ' ')
- }
- ini_setting{'fallback_ntp_server':
- ensure => 'present',
- value => $_fallback_ntp_server,
- setting => 'FallbackNTP',
- section => 'Time',
- path => '/etc/systemd/timesyncd.conf',
- notify => Service['systemd-timesyncd'],
- }
- }
-}
+++ /dev/null
-# Creates a systemd tmpfile
-#
-# @api public
-#
-# @see systemd-tmpfiles(8)
-#
-# @attr name [String]
-# The name of the tmpfile to create
-#
-# * May not contain ``/``
-#
-# @param $ensure
-# Whether to drop a file or remove it
-#
-# @param path
-# The path to the main systemd tmpfiles directory
-#
-# @param content
-# The literal content to write to the file
-#
-# * Mutually exclusive with ``$source``
-#
-# @param source
-# A ``File`` resource compatible ``source``
-#
-# * Mutually exclusive with ``$limits``
-#
-define systemd::tmpfile(
- Enum['present', 'absent', 'file'] $ensure = 'file',
- Stdlib::Absolutepath $path = '/etc/tmpfiles.d',
- Optional[String] $content = undef,
- Optional[String] $source = undef,
-) {
- include systemd::tmpfiles
-
- if $name =~ Pattern['/'] {
- fail('$name may not contain a forward slash "(/)"')
- }
-
- $_tmp_file_ensure = $ensure ? {
- 'present' => 'file',
- default => $ensure,
- }
-
- file { "${path}/${name}":
- ensure => $_tmp_file_ensure,
- content => $content,
- source => $source,
- owner => 'root',
- group => 'root',
- mode => '0444',
- notify => Class['systemd::tmpfiles'],
- }
-}
+++ /dev/null
-# Update the systemd temp files
-#
-# @api public
-#
-# @see systemd-tmpfiles(8)
-#
-# @param operations
-# The operations to perform on the systemd tempfiles
-#
-# * All operations may be combined but you'll probably only ever want to
-# use ``create``
-#
-class systemd::tmpfiles (
- Array[Enum['create','clean','remove']] $operations = ['create']
-) {
-
- $_ops = join(prefix($operations, '--'), ' ')
-
- exec { 'systemd-tmpfiles':
- command => "systemd-tmpfiles ${_ops}",
- refreshonly => true,
- path => $::path,
- }
-}
+++ /dev/null
-# Creates a systemd unit file
-#
-# @api public
-#
-# @see systemd.unit(5)
-#
-# @attr name [Pattern['^.+\.(service|socket|device|mount|automount|swap|target|path|timer|slice|scope)$']]
-# The target unit file to create
-#
-# * Must not contain ``/``
-#
-# @attr path
-# The main systemd configuration path
-#
-# @attr content
-# The full content of the unit file
-#
-# * Mutually exclusive with ``$source``
-#
-# @attr source
-# The ``File`` resource compatible ``source``
-#
-# * Mutually exclusive with ``$content``
-#
-# @attr target
-# If set, will force the file to be a symlink to the given target
-#
-# * Mutually exclusive with both ``$source`` and ``$content``
-#
-# @attr enable
-# If set, will manage the unit enablement status.
-#
-# @attr active
-# If set, will manage the state of the unit.
-#
-define systemd::unit_file(
- Enum['present', 'absent', 'file'] $ensure = 'present',
- Stdlib::Absolutepath $path = '/etc/systemd/system',
- Optional[String] $content = undef,
- Optional[String] $source = undef,
- Optional[Stdlib::Absolutepath] $target = undef,
- Optional[Variant[Boolean, Enum['mask']]] $enable = undef,
- Optional[Boolean] $active = undef,
-) {
- include systemd
-
- assert_type(Systemd::Unit, $name)
-
- if $target {
- $_ensure = 'link'
- } else {
- $_ensure = $ensure ? {
- 'present' => 'file',
- default => $ensure,
- }
- }
-
- file { "${path}/${name}":
- ensure => $_ensure,
- content => $content,
- source => $source,
- target => $target,
- owner => 'root',
- group => 'root',
- mode => '0444',
- notify => Class['systemd::systemctl::daemon_reload'],
- }
-
- if $enable != undef or $active != undef {
- service { $name:
- ensure => $active,
- enable => $enable,
- provider => 'systemd',
- subscribe => File["${path}/${name}"],
- require => Class['systemd::systemctl::daemon_reload'],
- }
- }
-}
+++ /dev/null
-{
- "name": "camptocamp-systemd",
- "version": "2.1.0",
- "author": "camptocamp",
- "summary": "Puppet Systemd module",
- "license": "Apache-2.0",
- "source": "https://github.com/camptocamp/puppet-systemd",
- "project_page": "https://github.com/camptocamp/puppet-systemd",
- "issues_url": "https://github.com/camptocamp/puppet-systemd/issues",
- "dependencies": [
- {
- "name": "puppetlabs/stdlib",
- "version_requirement": ">= 4.13.1 < 6.0.0"
- }
- ],
- "data_provider": null,
- "requirements": [
- {
- "name": "puppet",
- "version_requirement": ">= 4.10.10 < 6.0.0"
- }
- ],
- "operatingsystem_support": [
- {
- "operatingsystem": "Debian",
- "operatingsystemrelease": [
- "8",
- "9",
- "10"
- ]
- },
- {
- "operatingsystem": "Ubuntu",
- "operatingsystemrelease": [
- "16.04",
- "18.04"
- ]
- },
- {
- "operatingsystem": "RedHat",
- "operatingsystemrelease": [
- "7"
- ]
- },
- {
- "operatingsystem": "CentOS",
- "operatingsystemrelease": [
- "7"
- ]
- },
- {
- "operatingsystem": "Archlinux"
- }
- ]
-}
+++ /dev/null
-HOSTS:
- centos-5-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: el-5-x86_64
- hypervisor : docker
- image: centos:5
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'yum install -y crontabs tar wget'
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- centos-5-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: el-5-x86_64
- hypervisor : docker
- image: tianon/centos:5.10
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'yum install -y crontabs tar wget which'
- - 'sed -i -e "/mingetty/d" /etc/inittab'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- centos-6-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: el-6-x86_64
- hypervisor : docker
- image: centos:6
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'yum install -y crontabs tar wget'
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- centos-6-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: el-6-x86_64
- hypervisor : openstack
- flavor: m1.small
- image: centos-6-latest
- user: root
-CONFIG:
- type: foss
- log_level: debug
- openstack_network: default
+++ /dev/null
-HOSTS:
- centos-6-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: el-6-x86_64
- hypervisor : vagrant
- box : camptocamp/centos-6-x86_64
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- centos-6-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: el-6-x86_64
- hypervisor : docker
- image: centos:6
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'rm -rf /var/run/network/*'
- - 'yum install -y crontabs tar wget'
- - 'rm /etc/init/tty.conf'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- centos-7-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: el-7-x86_64
- hypervisor : docker
- image: centos:7
- docker_preserve_image: true
- docker_cmd: '["/usr/sbin/init"]'
- docker_image_commands:
- - 'yum install -y crontabs tar wget'
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- centos-7-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: el-7-x86_64
- hypervisor : openstack
- flavor: m1.small
- image: centos-7-latest
- user: centos
-CONFIG:
- type: foss
- log_level: debug
- openstack_network: default
+++ /dev/null
-HOSTS:
- centos-7-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: el-7-x86_64
- hypervisor : vagrant
- box : camptocamp/centos-7-x86_64
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- centos-7-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: el-7-x86_64
- hypervisor : docker
- image: centos:7
- docker_preserve_image: true
- docker_cmd: '["/usr/sbin/init"]'
- docker_image_commands:
- - 'yum install -y crontabs tar wget iproute'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- debian-6-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-6-amd64
- hypervisor : docker
- image: debian:6
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y wget'
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- debian-6-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-6-amd64
- hypervisor : openstack
- flavor: m1.small
- image: debian-6-latest
- user: debian
-CONFIG:
- type: foss
- log_level: debug
- openstack_network: default
+++ /dev/null
-HOSTS:
- debian-6-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-6-amd64
- hypervisor : vagrant
- box : puppetlabs/debian-6.0.10-64-nocm
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- debian-6-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-6-amd64
- hypervisor : docker
- image: debian/eol:squeeze
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y cron locales-all net-tools wget'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- debian-7-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-7-amd64
- hypervisor : docker
- image: debian:7
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y cron wget'
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- debian-7-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-7-amd64
- hypervisor : openstack
- flavor: m1.small
- image: debian-7-latest
- user: debian
-CONFIG:
- type: foss
- log_level: debug
- openstack_network: default
+++ /dev/null
-HOSTS:
- debian-7-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-7-amd64
- hypervisor : vagrant
- box : camptocamp/debian-7-amd64
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- debian-7-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-7-amd64
- hypervisor : docker
- image: debian:7
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y cron locales-all net-tools wget'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- debian-8-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-8-amd64
- hypervisor : docker
- image: debian:8
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y cron wget'
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- debian-8-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-8-amd64
- hypervisor : openstack
- flavor: m1.small
- image: debian-8-latest
- user: debian
-CONFIG:
- type: foss
- log_level: debug
- openstack_network: default
+++ /dev/null
-HOSTS:
- debian-8-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-8-amd64
- hypervisor : vagrant
- box : camptocamp/debian-8-amd64
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- debian-8-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: debian-8-amd64
- hypervisor : docker
- image: debian:8
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y cron locales-all net-tools wget'
- - 'rm -f /usr/sbin/policy-rc.d'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1004-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-10.04-amd64
- hypervisor : docker
- image: ubuntu:10.04
- # This stops the image from being deleted on completion, speeding up the process.
- docker_preserve_image: true
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1204-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-12.04-amd64
- hypervisor : docker
- image: ubuntu:12.04
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y wget'
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1204-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-12.04-amd64
- hypervisor : openstack
- flavor: m1.small
- image: ubuntu-1204-latest
- user: ubuntu
-CONFIG:
- type: foss
- log_level: debug
- openstack_network: default
+++ /dev/null
-HOSTS:
- ubuntu-1204-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-12.04-amd64
- hypervisor : docker
- image: ubuntu:12.04
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y net-tools wget'
- - 'locale-gen en_US.UTF-8'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1404-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-14.04-amd64
- hypervisor : docker
- image: ubuntu:14.04
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y wget'
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1404-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-14.04-amd64
- hypervisor : openstack
- flavor: m1.small
- image: ubuntu-1404-latest
- user: ubuntu
-CONFIG:
- type: foss
- log_level: debug
- openstack_network: default
+++ /dev/null
-HOSTS:
- ubuntu-1404-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-14.04-amd64
- hypervisor : vagrant
- box : puppetlabs/ubuntu-14.04-64-nocm
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1404-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-14.04-amd64
- hypervisor : docker
- image: ubuntu:14.04
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'rm /usr/sbin/policy-rc.d'
- - 'rm /sbin/initctl; dpkg-divert --rename --remove /sbin/initctl'
- - 'apt-get install -y net-tools wget'
- - 'locale-gen en_US.UTF-8'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1410-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-14.10-amd64
- hypervisor : docker
- image: ubuntu:14.10
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y wget'
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1410-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-14.10-amd64
- hypervisor : openstack
- flavor: m1.small
- image: ubuntu-1410-latest
- user: ubuntu
-CONFIG:
- type: foss
- log_level: debug
- openstack_network: default
+++ /dev/null
-HOSTS:
- ubuntu-1410-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-14.10-amd64
- hypervisor : docker
- image: ubuntu:14.10
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'rm /usr/sbin/policy-rc.d'
- - 'rm /sbin/initctl; dpkg-divert --rename --remove /sbin/initctl'
- - 'apt-get install -y net-tools wget'
- - 'locale-gen en_US.UTF-8'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1504-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-15.04-amd64
- hypervisor : docker
- image: ubuntu:15.04
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y wget'
-CONFIG:
- type: foss
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1504-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-15.04-amd64
- hypervisor : openstack
- flavor: m1.small
- image: ubuntu-1504-latest
- user: ubuntu
-CONFIG:
- type: foss
- log_level: debug
- openstack_network: default
+++ /dev/null
-HOSTS:
- ubuntu-1504-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-15.04-amd64
- hypervisor : docker
- image: ubuntu:15.04
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y net-tools wget'
- - 'locale-gen en_US.UTF-8'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1510-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-15.10-amd64
- hypervisor : docker
- image: ubuntu:15.10
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y net-tools wget'
- - 'locale-gen en_US.UTF-8'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-HOSTS:
- ubuntu-1604-x64:
- default_apply_opts:
- order: random
- strict_variables:
- platform: ubuntu-16.04-amd64
- hypervisor : docker
- image: ubuntu:16.04
- docker_preserve_image: true
- docker_cmd: '["/sbin/init"]'
- docker_image_commands:
- - 'apt-get install -y net-tools wget'
- - 'locale-gen en_US.UTF-8'
-CONFIG:
- type: aio
- log_level: debug
+++ /dev/null
-require 'spec_helper'
-
-describe 'systemd' do
- context 'supported operating systems' do
- on_supported_os.each do |os, facts|
- context "on #{os}" do
- let(:facts) { facts }
-
- it { is_expected.to compile.with_all_deps }
- it { is_expected.to create_class('systemd') }
- it { is_expected.to create_class('systemd::systemctl::daemon_reload') }
- it { is_expected.to_not create_service('systemd-resolved') }
- it { is_expected.to_not create_service('systemd-networkd') }
- it { is_expected.to_not create_service('systemd-timesyncd') }
-
- context 'when enabling resolved and networkd' do
- let(:params) {{
- :manage_resolved => true,
- :manage_networkd => true
- }}
-
- it { is_expected.to create_service('systemd-resolved').with_ensure('running') }
- it { is_expected.to create_service('systemd-resolved').with_enable(true) }
- it { is_expected.to create_service('systemd-networkd').with_ensure('running') }
- it { is_expected.to create_service('systemd-networkd').with_enable(true) }
- end
-
- context 'when enabling resolved with DNS values (string)' do
- let(:params) {{
- :manage_resolved => true,
- :dns => '8.8.8.8 8.8.4.4',
- :fallback_dns => '2001:4860:4860::8888 2001:4860:4860::8844',
- }}
-
- it { is_expected.to create_service('systemd-resolved').with_ensure('running') }
- it { is_expected.to create_service('systemd-resolved').with_enable(true) }
- it { is_expected.to contain_ini_setting('dns')}
- it { is_expected.to contain_ini_setting('fallback_dns')}
- it { is_expected.not_to contain_ini_setting('domains')}
- it { is_expected.not_to contain_ini_setting('multicast_dns')}
- it { is_expected.not_to contain_ini_setting('llmnr')}
- it { is_expected.not_to contain_ini_setting('dnssec')}
- it { is_expected.not_to contain_ini_setting('cache')}
- it { is_expected.not_to contain_ini_setting('dns_stub_listener')}
- end
-
- context 'when enabling resolved with DNS values (array)' do
- let(:params) {{
- :manage_resolved => true,
- :dns => %w(8.8.8.8 8.8.4.4),
- :fallback_dns => %w(2001:4860:4860::8888 2001:4860:4860::8844),
- }}
-
- it { is_expected.to create_service('systemd-resolved').with_ensure('running') }
- it { is_expected.to create_service('systemd-resolved').with_enable(true) }
- it { is_expected.to contain_ini_setting('dns')}
- it { is_expected.to contain_ini_setting('fallback_dns')}
- it { is_expected.not_to contain_ini_setting('domains')}
- it { is_expected.not_to contain_ini_setting('multicast_dns')}
- it { is_expected.not_to contain_ini_setting('llmnr')}
- it { is_expected.not_to contain_ini_setting('dnssec')}
- it { is_expected.not_to contain_ini_setting('cache')}
- it { is_expected.not_to contain_ini_setting('dns_stub_listener')}
- end
-
- context 'when enabling resolved with DNS values (full)' do
- let(:params) {{
- :manage_resolved => true,
- :dns => %w(8.8.8.8 8.8.4.4),
- :fallback_dns => %w(2001:4860:4860::8888 2001:4860:4860::8844),
- :domains => %w(2001:4860:4860::8888 2001:4860:4860::8844),
- :llmnr => true,
- :multicast_dns => false,
- :dnssec => false,
- :cache => true,
- :dns_stub_listener => 'udp',
- }}
-
- it { is_expected.to create_service('systemd-resolved').with_ensure('running') }
- it { is_expected.to create_service('systemd-resolved').with_enable(true) }
- it { is_expected.to contain_ini_setting('dns')}
- it { is_expected.to contain_ini_setting('fallback_dns')}
- it { is_expected.to contain_ini_setting('domains')}
- it { is_expected.to contain_ini_setting('multicast_dns')}
- it { is_expected.to contain_ini_setting('llmnr')}
- it { is_expected.to contain_ini_setting('dnssec')}
- it { is_expected.to contain_ini_setting('cache')}
- it { is_expected.to contain_ini_setting('dns_stub_listener')}
- end
-
- context 'when enabling timesyncd' do
- let(:params) {{
- :manage_timesyncd => true
- }}
-
- it { is_expected.to create_service('systemd-timesyncd').with_ensure('running') }
- it { is_expected.to create_service('systemd-timesyncd').with_enable(true) }
- it { is_expected.not_to create_service('systemd-resolved').with_ensure('running') }
- it { is_expected.not_to create_service('systemd-resolved').with_enable(true) }
- it { is_expected.not_to create_service('systemd-networkd').with_ensure('running') }
- it { is_expected.not_to create_service('systemd-networkd').with_enable(true) }
- end
-
- context 'when enabling timesyncd with NTP values (string)' do
- let(:params) {{
- :manage_timesyncd => true,
- :ntp_server => '0.pool.ntp.org 1.pool.ntp.org',
- :fallback_ntp_server => '2.pool.ntp.org 3.pool.ntp.org'
- }}
- it { is_expected.to compile.with_all_deps }
- it { is_expected.to contain_ini_setting('ntp_server')}
- it { is_expected.to contain_ini_setting('fallback_ntp_server')}
- end
-
- context 'when enabling timesyncd with NTP values (array)' do
- let(:params) {{
- :manage_timesyncd => true,
- :ntp_server => %w(0.pool.ntp.org 1.pool.ntp.org),
- :fallback_ntp_server => %w(2.pool.ntp.org 3.pool.ntp.org)
- }}
- it { is_expected.to compile.with_all_deps }
- it { is_expected.to contain_ini_setting('ntp_server')}
- it { is_expected.to contain_ini_setting('fallback_ntp_server')}
- end
-
- context 'when passing service limits' do
- let(:params) {{
- :service_limits => {'openstack-nova-compute.service' => {'limits' => {'LimitNOFILE' => 32768}}}
- }}
-
- it { is_expected.to compile.with_all_deps }
- it { is_expected.to contain_systemd__service_limits('openstack-nova-compute.service').with_limits({'LimitNOFILE' => 32768}) }
- end
-
- context 'when managing Accounting options' do
- let :params do
- {
- manage_accounting: true,
- }
- end
-
- it { is_expected.to contain_class('systemd::system')}
-
- case facts[:os]['family']
- when 'Archlinux'
- accounting = ['DefaultCPUAccounting', 'DefaultIOAccounting', 'DefaultIPAccounting', 'DefaultBlockIOAccounting', 'DefaultMemoryAccounting', 'DefaultTasksAccounting']
- when 'Debian'
- accounting = ['DefaultCPUAccounting', 'DefaultBlockIOAccounting', 'DefaultMemoryAccounting']
- when 'RedHat'
- accounting = ['DefaultCPUAccounting', 'DefaultBlockIOAccounting', 'DefaultMemoryAccounting', 'DefaultTasksAccounting']
- end
- accounting.each do |account|
- it { is_expected.to contain_ini_setting(account)}
- end
- it { is_expected.to compile.with_all_deps }
- end
- end
- end
- end
-end
+++ /dev/null
-require 'spec_helper'
-
-describe 'systemd::systemctl::daemon_reload' do
- context 'supported operating systems' do
- on_supported_os.each do |os, facts|
- context "on #{os}" do
- let(:facts) { facts }
-
- it { is_expected.to compile.with_all_deps }
- it { is_expected.to create_class('systemd::systemctl::daemon_reload') }
- it { is_expected.to create_exec('systemctl-daemon-reload') }
- end
- end
- end
-end
+++ /dev/null
-require 'spec_helper'
-
-describe 'systemd::tmpfiles' do
- context 'supported operating systems' do
- on_supported_os.each do |os, facts|
- context "on #{os}" do
- let(:facts) { facts }
-
- it { is_expected.to compile.with_all_deps }
- it { is_expected.to create_class('systemd::tmpfiles') }
- it { is_expected.to contain_exec('systemd-tmpfiles').with_command('systemd-tmpfiles --create') }
- end
- end
- end
-end
+++ /dev/null
----
-systemd-fsck-root.service: enabled-runtime
-systemd-journal-gatewayd.service: indirect
-systemd-journal-remote.service: indirect
-systemd-journal-upload.service: disabled
-systemd-networkd-wait-online.service: enabled
-systemd-networkd.service: enabled
-systemd-nspawn@.service: disabled
-systemd-resolved.service: enabled
-systemd-timesyncd.service: disabled
+++ /dev/null
-require 'spec_helper'
-
-describe 'systemd::dropin_file' do
- context 'supported operating systems' do
- on_supported_os.each do |os, facts|
- context "on #{os}" do
- let(:facts) { facts }
-
- let(:title) { 'test.conf' }
-
- let(:params) {{
- :unit => 'test.service',
- :content => 'random stuff'
- }}
-
- it { is_expected.to compile.with_all_deps }
-
- it { is_expected.to create_file("/etc/systemd/system/#{params[:unit]}.d").with(
- :ensure => 'directory',
- ) }
-
- it { is_expected.to create_file("/etc/systemd/system/#{params[:unit]}.d/#{title}").with(
- :ensure => 'file',
- :content => /#{params[:content]}/,
- :mode => '0444'
- ) }
-
- it { is_expected.to create_file("/etc/systemd/system/#{params[:unit]}.d/#{title}").that_notifies('Class[systemd::systemctl::daemon_reload]') }
-
- context 'with a bad unit type' do
- let(:title) { 'test.badtype' }
-
- it {
- expect{
- is_expected.to compile.with_all_deps
- }.to raise_error(/expects a match for Systemd::Dropin/)
- }
- end
-
- context 'with another drop-in file with the same filename (and content)' do
- let(:default_params) {{
- :filename => 'longer-timeout.conf',
- :content => 'random stuff'
- }}
- # Create drop-in file longer-timeout.conf for unit httpd.service
- let :pre_condition do
- "systemd::dropin_file { 'httpd_longer-timeout':
- filename => '#{default_params[:filename]}',
- unit => 'httpd.service',
- content => '#{default_params[:context]}',
- }"
- end
- #
- # Create drop-in file longer-timeout.conf for unit ftp.service
- let (:title) {'ftp_longer-timeout'}
- let :params do
- default_params.merge({
- :unit => 'ftp.service'
- })
- end
-
- it { is_expected.to create_file("/etc/systemd/system/#{params[:unit]}.d/#{params[:filename]}").with(
- :ensure => 'file',
- :content => /#{params[:content]}/,
- :mode => '0444'
- ) }
- end
- end
- end
- end
-end
+++ /dev/null
-require 'spec_helper'
-
-describe 'systemd::network' do
- let :params do
- {
- restart_service: true
- }
- end
-
- let(:title) { 'eth0.network' }
-
- on_supported_os.each do |os, facts|
- let :facts do
- facts
- end
-
- context 'with all defaults' do
- it { is_expected.to compile.with_all_deps }
- end
- end
-end
+++ /dev/null
-require 'spec_helper'
-
-describe 'systemd::service_limits' do
- context 'supported operating systems' do
- on_supported_os.each do |os, facts|
- context "on #{os}" do
- let(:facts) { facts }
-
- let(:title) { 'test.service' }
-
- describe 'with limits and present' do
- let(:params) {{
- :limits => {
- 'LimitCPU' => '10m',
- 'LimitFSIZE' => 'infinity',
- 'LimitDATA' => '10K',
- 'LimitNOFILE' => '20:infinity',
- 'LimitNICE' => '-10',
- 'LimitRTPRIO' => 50,
- 'IODeviceWeight' => [
- {'/dev/weight' => 10},
- {'/dev/weight2' => 20}
- ],
- 'IOReadBandwidthMax' => [
- {'/bw/max' => '10K'}
- ]
- }
- }}
-
- it { is_expected.to compile.with_all_deps }
- it { is_expected.to create_file("/etc/systemd/system/#{title}.d/90-limits.conf").with(
- :ensure => 'file',
- :content => /LimitCPU=10m/,
- :mode => '0444'
- ) }
- it { is_expected.to create_file("/etc/systemd/system/#{title}.d/90-limits.conf").with(
- :content => /LimitFSIZE=infinity/
- ) }
- it { is_expected.to create_file("/etc/systemd/system/#{title}.d/90-limits.conf").with(
- :content => /LimitDATA=10K/
- ) }
- it { is_expected.to create_file("/etc/systemd/system/#{title}.d/90-limits.conf").with(
- :content => /LimitNOFILE=20:infinity/
- ) }
- it { is_expected.to create_file("/etc/systemd/system/#{title}.d/90-limits.conf").with(
- :content => /LimitNICE=-10/
- ) }
- it { is_expected.to create_file("/etc/systemd/system/#{title}.d/90-limits.conf").with(
- :content => /LimitRTPRIO=50/
- ) }
- it { is_expected.to create_file("/etc/systemd/system/#{title}.d/90-limits.conf").with(
- :content => %r(IODeviceWeight=/dev/weight 10)
- ) }
- it { is_expected.to create_file("/etc/systemd/system/#{title}.d/90-limits.conf").with(
- :content => %r(IODeviceWeight=/dev/weight2 20)
- ) }
- it { is_expected.to create_file("/etc/systemd/system/#{title}.d/90-limits.conf").with(
- :content => %r(IOReadBandwidthMax=/bw/max 10K)
- ) }
- it { is_expected.to create_exec("restart #{title} because limits").with(
- :command => "systemctl restart #{title}",
- :refreshonly => true
- ) }
- end
-
- describe 'ensured absent' do
- let(:params) {{
- :ensure => 'absent',
- }}
-
- it { is_expected.to compile.with_all_deps }
- it do
- is_expected.to create_file("/etc/systemd/system/#{title}.d/90-limits.conf")
- .with_ensure('absent')
- .that_notifies("Exec[restart #{title} because limits]")
- end
- it do
- is_expected.to create_exec("restart #{title} because limits")
- .with_command("systemctl restart #{title}")
- .with_refreshonly(true)
- end
- end
- end
- end
- end
-end
+++ /dev/null
-require 'spec_helper'
-
-describe 'systemd::tmpfile' do
- context 'supported operating systems' do
- on_supported_os.each do |os, facts|
- context "on #{os}" do
- let(:facts) { facts }
-
- let(:title) { 'random_tmpfile' }
-
- let(:params) {{
- :content => 'random stuff'
- }}
-
- it { is_expected.to compile.with_all_deps }
- it { is_expected.to create_file("/etc/tmpfiles.d/#{title}").with(
- :ensure => 'file',
- :content => /#{params[:content]}/,
- :mode => '0444'
- ) }
- end
- end
- end
-end
+++ /dev/null
-require 'spec_helper'
-
-describe 'systemd::unit_file' do
- context 'supported operating systems' do
- on_supported_os.each do |os, facts|
- context "on #{os}" do
- let(:facts) { facts }
-
- let(:title) { 'test.service' }
-
- let(:params) {{
- :content => 'random stuff'
- }}
-
- it { is_expected.to compile.with_all_deps }
-
- it { is_expected.to create_file("/etc/systemd/system/#{title}").with(
- :ensure => 'file',
- :content => /#{params[:content]}/,
- :mode => '0444'
- ) }
-
- it { is_expected.to create_file("/etc/systemd/system/#{title}").that_notifies('Class[systemd::systemctl::daemon_reload]') }
-
- context 'with a bad unit type' do
- let(:title) { 'test.badtype' }
-
- it {
- expect{
- is_expected.to compile.with_all_deps
- }.to raise_error(/expects a match for Systemd::Unit/)
- }
- end
-
- context 'with enable => true and active => true' do
- let(:params) do
- super().merge({
- :enable => true,
- :active => true
- })
- end
-
- it { is_expected.to contain_service('test.service').with(
- :ensure => true,
- :enable => true,
- :provider => 'systemd'
- ) }
-
- it { is_expected.to contain_service('test.service').that_subscribes_to("File[/etc/systemd/system/#{title}]") }
- it { is_expected.to contain_service('test.service').that_requires('Class[systemd::systemctl::daemon_reload]') }
- end
- end
- end
- end
-end
+++ /dev/null
---format
-s
---colour
---loadby
-mtime
---backtrace
+++ /dev/null
-require 'puppetlabs_spec_helper/module_spec_helper'
-require 'rspec-puppet-facts'
-include RspecPuppetFacts
-
-
-add_custom_fact :systemd_internal_services, YAML.load(File.read(File.expand_path('../default_module_facts.yaml', __FILE__)))
-
-RSpec.configure do |c|
- c.include PuppetlabsSpec::Files
-
- # Useless backtrace noise
- backtrace_exclusion_patterns = [
- /spec_helper/,
- /gems/
- ]
-
- if c.respond_to?(:backtrace_exclusion_patterns)
- c.backtrace_exclusion_patterns = backtrace_exclusion_patterns
- elsif c.respond_to?(:backtrace_clean_patterns)
- c.backtrace_clean_patterns = backtrace_exclusion_patterns
- end
-
- c.before :each do
- # Store any environment variables away to be restored later
- @old_env = {}
- ENV.each_key {|k| @old_env[k] = ENV[k]}
-
- c.strict_variables = Gem::Version.new(Puppet.version) >= Gem::Version.new('3.5')
- Puppet.features.stubs(:root?).returns(true)
- end
-
- c.after :each do
- PuppetlabsSpec::Files.cleanup
- end
-end
+++ /dev/null
-require "spec_helper"
-
-describe Facter::Util::Fact do
- before { Facter.clear }
- after { Facter.clear }
-
- describe 'systemd' do
- context 'returns true when systemd present' do
- before do
- Facter.fact(:kernel).stubs(:value).returns(:linux)
- Facter.add(:service_provider) { setcode { 'systemd' } }
- end
-
- it { expect(Facter.value(:service_provider)).to eq('systemd') }
- it { expect(Facter.value(:systemd)).to be true }
- end
-
- context 'returns false when systemd not present' do
- before do
- Facter.fact(:kernel).stubs(:value).returns(:linux)
- Facter.add(:service_provider) { setcode { 'redhat' } }
- end
-
- it { expect(Facter.value(:service_provider)).to eq('redhat') }
- it { expect(Facter.value(:systemd)).to be false }
- end
-
- context 'returns nil when kernel is not linux' do
- before do
- Facter.fact(:kernel).stubs(:value).returns(:windows)
- end
-
- it { expect(Facter.value(:systemd)).to be_nil }
- end
- end
-end
+++ /dev/null
-require "spec_helper"
-
-describe Facter::Util::Fact do
- before {
- Facter.clear
- }
-
- describe "systemd_version" do
- context 'returns version when systemd fact present' do
- before do
- Facter.fact(:systemd).stubs(:value).returns(true)
- end
- let(:facts) { {:systemd => true} }
- it do
- Facter::Util::Resolution.expects(:exec).with("systemctl --version | awk '/systemd/{ print $2 }'").returns('229')
- expect(Facter.value(:systemd_version)).to eq('229')
- end
- end
- context 'returns nil when systemd fact not present' do
- before do
- Facter.fact(:systemd).stubs(:value).returns(false)
- end
- let(:facts) { {:systemd => false } }
- it do
- Facter::Util::Resolution.stubs(:exec)
- Facter::Util::Resolution.expects(:exec).with("systemctl --version | awk '/systemd/{ print $2 }'").never
- expect(Facter.value(:systemd_version)).to eq(nil)
- end
- end
- end
-end
+++ /dev/null
-# This file managed by Puppet - DO NOT EDIT
-[Service]
-<%
- @limits.keys.sort.each do |k|
-
- # Handles the Path and Option entries
- if @limits[k].is_a?(Array)
- output = @limits[k].map{|x|
- x = %(#{k}=#{x.to_a.flatten.join(' ')})
- }.join("\n")
- else
- output = %(#{k}=#{@limits[k]})
- end
--%>
-<%= output %>
-<% end -%>
+++ /dev/null
-type Systemd::Dropin = Pattern['^.+\.conf$']
+++ /dev/null
-# Matches Systemd Service Limit Struct
-type Systemd::ServiceLimits = Struct[
- {
- Optional['LimitCPU'] => Pattern['^\d+(s|m|h|d|w|M|y)?(:\d+(s|m|h|d|w|M|y)?)?$'],
- Optional['LimitFSIZE'] => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
- Optional['LimitDATA'] => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
- Optional['LimitSTACK'] => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
- Optional['LimitCORE'] => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
- Optional['LimitRSS'] => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
- Optional['LimitNOFILE'] => Variant[Integer[-1],Pattern['^(infinity|\d+(:(infinity|\d+))?)$']],
- Optional['LimitAS'] => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
- Optional['LimitNPROC'] => Integer[1],
- Optional['LimitMEMLOCK'] => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
- Optional['LimitLOCKS'] => Integer[1],
- Optional['LimitSIGPENDING'] => Integer[1],
- Optional['LimitMSGQUEUE'] => Pattern['^(infinity|((\d+(K|M|G|T|P|E)(:\d+(K|M|G|T|P|E))?)))$'],
- Optional['LimitNICE'] => Variant[Integer[0,40], Pattern['^(-\+([0-1]?[0-9]|20))|([0-3]?[0-9]|40)$']],
- Optional['LimitRTPRIO'] => Integer[0],
- Optional['LimitRTTIME'] => Pattern['^\d+(ms|s|m|h|d|w|M|y)?(:\d+(ms|s|m|h|d|w|M|y)?)?$'],
- Optional['CPUAccounting'] => Boolean,
- Optional['CPUShares'] => Integer[2,262144],
- Optional['StartupCPUShares'] => Integer[2,262144],
- Optional['CPUQuota'] => Pattern['^([1-9][0-9]?$|^100)%$'],
- Optional['MemoryAccounting'] => Boolean,
- Optional['MemoryLow'] => Pattern['^(\d+(K|M|G|T)?)$'],
- Optional['MemoryHigh'] => Pattern['^(\d+(K|M|G|T)?)$'],
- Optional['MemoryMax'] => Pattern['^(\d+(K|M|G|T)?)$'],
- Optional['MemoryLimit'] => Pattern['^(\d+(K|M|G|T)?)$'],
- Optional['TasksAccounting'] => Boolean,
- Optional['TasksMax'] => Variant[Integer[1],Pattern['^(infinity|([1-9][0-9]?$|^100)%)$']],
- Optional['IOAccounting'] => Boolean,
- Optional['IOWeight'] => Integer[1,10000],
- Optional['StartupIOWeight'] => Integer[1,10000],
- Optional['IODeviceWeight'] => Array[Hash[Stdlib::Absolutepath, Integer[1,10000], 1, 1]],
- Optional['IOReadBandwidthMax'] => Array[Hash[Stdlib::Absolutepath, Pattern['^(\d+(K|M|G|T)?)$'], 1, 1]],
- Optional['IOWriteBandwidthMax'] => Array[Hash[Stdlib::Absolutepath, Pattern['^(\d+(K|M|G|T)?)$'], 1, 1]],
- Optional['IOReadIOPSMax'] => Array[Hash[Stdlib::Absolutepath, Pattern['^(\d+(K|M|G|T)?)$'], 1, 1]],
- Optional['IOWriteIOPSMax'] => Array[Hash[Stdlib::Absolutepath, Pattern['^(\d+(K|M|G|T)?)$'], 1, 1]],
- Optional['DeviceAllow'] => String[1],
- Optional['DevicePolicy'] => Enum['auto','closed','strict'],
- Optional['Slice'] => String[1],
- Optional['Delegate'] => Boolean
- }
-]
+++ /dev/null
-type Systemd::Unit = Pattern['^.+\.(service|socket|device|mount|automount|swap|target|path|timer|slice|scope)$']