GitHub puppet-systemd
Puppet module to manage systemd

Repo Checks ( 21 of 32 successfull )
Metadata Valid
No translation
passed
Correct Puppet Version Range
Supported Puppet version range is %{PUPPET_SUPPORT_RANGE}
passed
With Puppet Version Range
Puppet version range is present in requirements in metadata.json
passed
With Operatingsystem Support
No translation
passed
Operatingsystems
No translation
passed
Supports Only Current Debian
No translation
failed
Supports Latest Debian
No translation
passed
Supports Only Current Ubuntu
No translation
failed
Supports Latest Ubuntu
No translation
failed
Supports Only Current Sles
No translation
passed
Supports Latest Sles
No translation
failed
Supports Only Current Redhat
No translation
passed
Supports Latest Redhat
No translation
passed
Supports Only Current Virtuozzolinux
No translation
passed
Supports Latest Virtuozzolinux
No translation
failed
Supports Only Current Centos
No translation
passed
Supports Latest Centos
No translation
passed
Supports Only Current Oraclelinux
No translation
passed
Supports Latest Oraclelinux
No translation
failed
Supports Only Current Archlinux
No translation
failed
Supports Latest Archlinux
No translation
failed
Supports Only Current Gentoo
No translation
failed
Supports Latest Gentoo
No translation
failed
Supports Only Current Fedora
No translation
passed
Supports Latest Fedora
No translation
failed
In Modulesync Repo
Is listed as a module managed using modulesync_config
passed
Synced
Has a .msync.yml file
passed
Latest Modulesync
Has been synchronized with the latest tagged version of modulesync_config
passed
Has Modulesync
Is present in voxpupuli/modulesync_config/managed_modules.yml
passed
Released
Is in modulesync_config and in forge releases.
passed
Valid Sync File
If a (optional) sync file is present, it must not contain a `.travis.yml` entry.
passed
Reference Dot Md
The repository has a REFERENCE.md. It needs to be generated / puppet-strings documentation is missing.
passed

Open Pull Requests

Remove restart_service on service_limits define
merge-conflicts
backwards-incompatible
backwards-incompatible

Since 97dd16fa32886b5b0f77a6f38a4953d4c1511c0e this parameter is a bad idea. It doesn't do a daemon reload and it may restart at the wrong time. In fact, I'd argue it's always been a bad idea.

The recommended alternative to this is to manage the service explicitly and let Puppet handle it. There is an automatic notify that takes care of it.

Fixes #190

Open PR in GitHub
Add a socket_service definition

For systemd socket activated services it's needed to have both the .socket and .service unit defintions in place when starting the service. Prior to 97dd16fa32886b5b0f77a6f38a4953d4c1511c0e the systemctl daemon-reload took care of it, but now this must be done explicitly.

This new defined type makes it easy and reduces the burden on modules that define the unit/service pair.

I haven't tested this yet, but submitting it early so I can run CI on it and link it elsewhere.

Open PR in GitHub
Notify services by default on drop in files

This builds on 81f3eb5e7612e50726fa8450ca161bbe271419a1 which allowed services to be notified automatically. This changes it to default behavior.

Fixes #74

It's currently a draft since it includes https://github.com/camptocamp/puppet-systemd/pull/193 which I think it may depend on.

Open PR in GitHub
Fix clash with modules that manage the unit folder too
merge-conflicts

Other puppet modules in a puppet setup might manage the {unit}.d folder as well. For example puppetlabs/docker does (See https://github.com/puppetlabs/puppetlabs-docker/blob/main/manifests/service.pp).
If one still wants to add limits overrides via this systemd module, puppet will complain about duplicate resource declaration.

Open PR in GitHub
New systemd::simpletimer type
enhancement

Pull Request (PR) description

Addition of a new type

puppet
systemd::simpletimer{'onceperday.timer':
enusre => present,
command => '/usr/bin/touch /tmp/today'
timings => {
'OnCalendar' => 'daily',
},
}

would run a command once per day generating units and services from templates.

Motivation here is to make (the majority) of timers as easy to add as cron jobs.

Open PR in GitHub
New systemd::unit_file::templated, systemd::dropin_file::templated types
enhancement

Pull Request (PR) description

A new type is added to create a service unit file from a template and then manage the resulting service.

Example
puppet
systemd::unit_file::templated{ 'myrunner.service':
$unit_entry => {
'Description' => ['My great service', 'has two lines of description'],
},
$service_entry => {
'Type' => 'oneshot',
'ExecStart' => '/usr/bin/doit.sh',
},
$install_entry => {
WantedBy => 'multi-user.target',
},
}

will generate and manage a new systemd unit from a template.

Similarly to create drop in files from the same tempalte:

puppet
systemd::dropin_file::template {'myconf.conf':
ensure => present,
unit => 'myservice.service',
service_entry => {
'Type' => 'oneshot',
'ExecStart' => ['', '/usr/bin/doit.sh'],
}
}

Not every systemd directive has been added but a healthy set has and subsequents can be added as required.

https://www.freedesktop.org/software/systemd/man/systemd.directives.html

Open PR in GitHub
Correct docs for name var of systemd::dropin_file
docs

Pull Request (PR) description

The filename and unit parameter were documented incorrectly
as to which was the name variable.

Open PR in GitHub
systemd::unit_file: remove hasrestart/hasstatus params
backwards-incompatible
backwards-incompatible

This removes two parameters from systemd::unit_file. In release 3.8.0 on 2022-03-02 we introcuced the deprecation warnings. We should merge this PR somewhere in the future when we've other breaking changes. Do not merge at the moment!

Open PR in GitHub
Make Systemd::Unit type stricter
enhancement

Pull Request (PR) description

Previously lots of unit names like


this is a service with spaces in.service

were permitted for instance.

From systemd.unit

Valid unit names consist of a "name prefix" and a dot and a suffix specifying the unit type. The "unit prefix" must consist of one or more valid characters (ASCII letters, digits, ":", "-", "_", ".", and "\"). The total length of the unit name including the suffix must not exceed 256 characters. The type suffix must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".slice", or ".scope".

in addition we allow @ to cover the case of template or template instance.

Open PR in GitHub
Update supported OS releases
backwards-incompatible

Drop a few OS releases that are EOL and add some fresh Fedora ones.

Open PR in GitHub