Examples:
systemd::manage_unit { 'myrunner.service':
unit_entry => {
'Description' => 'My great service',
},
service_entry => {
'Type' => 'oneshot',
'ExecStart' => '/usr/bin/doit.sh',
},
install_entry => {
'WantedBy' => 'multi-user.target',
},
}
systemd::manage_unit { 'passwd-mon.path':
ensure => present,
unit_entry => {
'Description' => 'Monitor the passwd file',
},
path_entry => {
'PathModified' => '/etc/passwd',
'Unit' => 'passwd-mon.service',
},
install_entry => {
'WantedBy' => 'multi-user.target',
},
}
Generate a socket and service (xinetd style)
systemd::manage_unit {'arcd.socket':
ensure => 'present',
unit_entry => {
'Description' => 'arcd.service',
},
socket_entry => {
'ListenStream' => 4241,
'Accept' => true,
'BindIPv6Only' => 'both',
},
install_entry => {
'WantedBy' => 'sockets.target',
},
}
systemd::manage_unit{'arcd@.service':
ensure => 'present',
enable => true,
active => true,
unit_entry => {
'Description' => 'arc sever for %i',
},
service_entry => {
'Type' => 'simple',
'ExecStart' => /usr/sbin/arcd /usr/libexec/arcd/arcd.pl,
'StandardInput' => 'socket',
},
}
Mount a Filesystem and Use for a Service
systemd::manage_unit { 'var-lib-sss-db.mount':
ensure => present,
unit_entry => {
'Description' => 'Mount sss tmpfs db',
},
mount_entry => {
'What' => 'tmpfs',
'Where' => '/var/lib/sss/db',
'Type' => 'tmpfs',
'Options' => 'size=300M,mode=0700,uid=sssd,gid=sssd,rootcontext=system_u:object_r:sssd_var_lib_t:s0',
},
}
systemd::manage_dropin { 'tmpfs-db.conf':
ensure => present,
unit => 'sssd.service',
unit_entry => {
'RequiresMountsFor' => '/var/lib/sss/db',
},
}
Create and Mount a Swap File
systemd::manage_unit{'swapfile.swap':
ensure => present,
enable => true,
active => true,
unit_entry => {
'Description' => 'Mount /swapfile as a swap file',
'After' => 'mkswap.service',
'Requires' => 'mkswap.service',
},
swap_entry => {
'What' => '/swapfile',
},
install_entry => {
'WantedBy' => 'multi-user.target',
},
require => Systemd::Manage_unit['mkswap.service'],
}
systemd::manage_unit{'mkswap.service':
ensure => present,
unit_entry => {
'Description' => 'Format a swapfile at /swapfile',
'ConditionPathExists' => '!/swapfile',
},
service_entry => {
'Type' => 'oneshot',
'UMask' => '0177',
'ExecStart' => [
'/usr/bin/dd if=/dev/zero of=/swapfile bs=1024 count=1000',
'/usr/sbin/mkswap /swapfile',
],
},
}
systemd::manage_unit { 'my.service':
ensure => 'absent',
}