Skip to content

isabella232/puppet-systemd

 
 

Repository files navigation

Systemd

Puppet Forge Build Status

Overview

This module declares exec resources to create global sync points for reloading systemd.

Usage and examples

There are two ways to use this module.

unit files

Let this module handle file creation and systemd reloading.

::systemd::unit_file { 'foo.service':
 source => "puppet:///modules/${module_name}/foo.service",
}

Or handle file creation yourself and trigger systemd.

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']

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:

::systemd::dropin_file { 'foo.conf':
  unit   => 'foo.service',
  source => "puppet:///modules/${module_name}/foo.conf",
}

Or handle file and directory creation yourself and trigger systemd:

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']

tmpfiles

Let this module handle file creation and systemd reloading

::systemd::tmpfile { 'foo.conf':
  source => "puppet:///modules/${module_name}/foo.conf",
}

Or handle file creation yourself and trigger systemd.

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.

::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.

::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:

::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 and systemd-networkd via the main class:

class{'::systemd':
  $manage_resolved => true,
  $manage_networkd => 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.

About

Puppet module to manage systemd

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 51.0%
  • Puppet 36.6%
  • Pascal 11.2%
  • HTML 1.2%