diff options
author | Raphaël Pinson <github+aem1eeshi1@raphink.net> | 2016-05-04 09:31:53 +0200 |
---|---|---|
committer | Raphaël Pinson <github+aem1eeshi1@raphink.net> | 2016-05-04 09:31:53 +0200 |
commit | 106be55a2469a6b87ac33e0b2fa8bca40ef2cb4d (patch) | |
tree | 761ebe4a9b31f80088c551e1f0f123cffb11701d | |
parent | 783f6b7a13f21c78d89241b2e5cebe82d80febfb (diff) | |
parent | 040f1acf02dc379e3fe577d900b96b47a38a714a (diff) |
Merge pull request #4 from felixb/feature/unit-files
Shortcut for creating unit files / tmpfiles
-rw-r--r-- | .fixtures.yml | 4 | ||||
-rw-r--r-- | README.md | 30 | ||||
-rw-r--r-- | manifests/tmpfile.pp | 20 | ||||
-rw-r--r-- | manifests/unit_file.pp | 20 | ||||
-rw-r--r-- | spec/defines/tmpfile_spec.rb | 48 | ||||
-rw-r--r-- | spec/defines/unit_file_spec.rb | 48 |
6 files changed, 166 insertions, 4 deletions
diff --git a/.fixtures.yml b/.fixtures.yml new file mode 100644 index 0000000..1d455a3 --- /dev/null +++ b/.fixtures.yml @@ -0,0 +1,4 @@ +--- +fixtures: + symlinks: + systemd: "#{source_dir}"
\ No newline at end of file @@ -5,11 +5,23 @@ ## Overview -This module declares exec resources that you can use when you change systemd units or configuration files. +This module declares exec resources to create global sync points for reloading systemd. -## Examples +## Usage and examples -### systemctl --daemon-reload +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", +} +``` + +Or handle file creation yourself and trigger systemd. ```puppet include ::systemd @@ -23,7 +35,17 @@ file { '/usr/lib/systemd/system/foo.service': Exec['systemctl-daemon-reload'] ``` -### systemd-tmpfiles --create +### 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 diff --git a/manifests/tmpfile.pp b/manifests/tmpfile.pp new file mode 100644 index 0000000..c4d1a05 --- /dev/null +++ b/manifests/tmpfile.pp @@ -0,0 +1,20 @@ +# -- Define: systemd::tmpfile +# Creates a tmpfile and reloads systemd +define systemd::tmpfile( + $ensure = file, + $path = '/etc/tmpfiles.d', + $content = undef, + $source = undef, +) { + include ::systemd + + file { "${path}/${title}": + ensure => $ensure, + content => $content, + source => $source, + owner => 'root', + group => 'root', + mode => '0444', + notify => Exec['systemd-tmpfiles-create'], + } +}
\ No newline at end of file diff --git a/manifests/unit_file.pp b/manifests/unit_file.pp new file mode 100644 index 0000000..0f659db --- /dev/null +++ b/manifests/unit_file.pp @@ -0,0 +1,20 @@ +# -- Define: systemd::unit_file +# Creates a unit file and reloads systemd +define systemd::unit_file( + $ensure = file, + $path = '/etc/systemd/system', + $content = undef, + $source = undef, +) { + include ::systemd + + file { "${path}/${title}": + ensure => $ensure, + content => $content, + source => $source, + owner => 'root', + group => 'root', + mode => '0444', + notify => Exec['systemctl-daemon-reload'], + } +}
\ No newline at end of file diff --git a/spec/defines/tmpfile_spec.rb b/spec/defines/tmpfile_spec.rb new file mode 100644 index 0000000..4eb22ac --- /dev/null +++ b/spec/defines/tmpfile_spec.rb @@ -0,0 +1,48 @@ +require 'spec_helper' + +describe 'systemd::tmpfile' do + + let(:facts) { { + :path => '/usr/bin', + } } + + context 'default params' do + + let(:title) { 'fancy.conf' } + + it 'creates the tmpfile' do + should contain_file('/etc/tmpfiles.d/fancy.conf').with({ + 'ensure' => 'file', + 'owner' => 'root', + 'group' => 'root', + 'mode' => '0444', + }) + end + + it 'triggers systemd daemon-reload' do + should contain_class('systemd') + should contain_file('/etc/tmpfiles.d/fancy.conf').with_notify("Exec[systemd-tmpfiles-create]") + end + end + + context 'with params' do + let(:title) { 'fancy.conf' } + + let(:params) { { + :ensure => 'absent', + :path => '/etc/tmpfiles.d/foo', + :content => 'some-content', + :source => 'some-source', + } } + + it 'creates the unit file' do + should contain_file('/etc/tmpfiles.d/foo/fancy.conf').with({ + 'ensure' => 'absent', + 'content' => 'some-content', + 'source' => 'some-source', + }) + end + + end + +end diff --git a/spec/defines/unit_file_spec.rb b/spec/defines/unit_file_spec.rb new file mode 100644 index 0000000..0eebbd3 --- /dev/null +++ b/spec/defines/unit_file_spec.rb @@ -0,0 +1,48 @@ +require 'spec_helper' + +describe 'systemd::unit_file' do + + let(:facts) { { + :path => '/usr/bin', + } } + + context 'default params' do + + let(:title) { 'fancy.service' } + + it 'creates the unit file' do + should contain_file('/etc/systemd/system/fancy.service').with({ + 'ensure' => 'file', + 'owner' => 'root', + 'group' => 'root', + 'mode' => '0444', + }) + end + + it 'triggers systemd daemon-reload' do + should contain_class('systemd') + should contain_file('/etc/systemd/system/fancy.service').with_notify("Exec[systemctl-daemon-reload]") + end + end + + context 'with params' do + let(:title) { 'fancy.service' } + + let(:params) { { + :ensure => 'absent', + :path => '/usr/lib/systemd/system', + :content => 'some-content', + :source => 'some-source', + } } + + it 'creates the unit file' do + should contain_file('/usr/lib/systemd/system/fancy.service').with({ + 'ensure' => 'absent', + 'content' => 'some-content', + 'source' => 'some-source', + }) + end + + end + +end |