Merge remote-tracking branch 'camptocamp/master'
[puppet_systemd.git] / README.md
1 # Systemd
2
3 [![Puppet Forge](http://img.shields.io/puppetforge/v/camptocamp/systemd.svg)](https://forge.puppetlabs.com/camptocamp/systemd)
4 [![Build Status](https://travis-ci.org/camptocamp/puppet-systemd.png?branch=master)](https://travis-ci.org/camptocamp/puppet-systemd)
5
6 ## Overview
7
8 This module declares exec resources to create global sync points for reloading systemd.
9
10 ## Usage and examples
11
12 There are two ways to use this module.
13
14 ### unit files
15
16 Let this module handle file creation and systemd reloading.
17
18 ```puppet
19 ::systemd::unit_file { 'foo.service':
20  source => "puppet:///modules/${module_name}/foo.service",
21 }
22 ```
23
24 Or handle file creation yourself and trigger systemd.
25
26 ```puppet
27 include ::systemd
28 file { '/usr/lib/systemd/system/foo.service':
29   ensure => file,
30   owner  => 'root',
31   group  => 'root',
32   mode   => '0644',
33   source => "puppet:///modules/${module_name}/foo.service",
34 } ~>
35 Exec['systemctl-daemon-reload']
36 ```
37
38 ### tmpfiles
39
40 Let this module handle file creation and systemd reloading
41
42 ```puppet
43 ::systemd::tmpfile { 'foo.conf':
44   source => "puppet:///modules/${module_name}/foo.conf",
45 }
46 ```
47
48 Or handle file creation yourself and trigger systemd.
49
50 ```puppet
51 include ::systemd
52 file { '/etc/tmpfiles.d/foo.conf':
53   ensure => file,
54   owner  => 'root',
55   group  => 'root',
56   mode   => '0644',
57   source => "puppet:///modules/${module_name}/foo.conf",
58 } ~>
59 Exec['systemd-tmpfiles-create']
60 ```
61
62 ### service limits
63
64 Manage soft and hard limits on various resources for executed processes.
65
66 ```puppet
67 ::systemd::service_limits { 'foo.service':
68   limits => {
69     LimitNOFILE => 8192,
70     LimitNPROC  => 16384
71   }
72 }
73 ```
74
75 Or provide the configuration file yourself. Systemd reloading and restarting of the service are handled by the module.
76
77 ```puppet
78 ::systemd::service_limits { 'foo.service':
79   source => "puppet:///modules/${module_name}/foo.conf",
80 }
81 ```