[PUP-7995] Puppet can't mask systemd's static unit Created: 2017/08/10  Updated: 2018/05/21

Status: Accepted
Project: Puppet
Component/s: None
Affects Version/s: PUP 4.10.6
Fix Version/s: None

Type: Bug Priority: Normal
Reporter: Fabrice Bacchella Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: linux, service, systemd, type_and_provider
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.3.1611 (Core)
Release: 7.3.1611
Codename: Core

puppet --version

Team: Platform OS
Method Found: Needs Assessment
QA Risk Assessment: Needs Assessment


I'm trying to stop rpc-svcgssd.service on some servers.

This service is marked as static:
systemctl status rpc-svcgssd.service
rpc-svcgssd.service - RPC security service for NFS server
Loaded: loaded (/usr/lib/systemd/system/rpc-svcgssd.service; static; vendor preset: disabled)
Active: inactive (dead)

And that prevent it to be masked;
puppet resource service rpc-svcgssd.service enable=mask

{ 'rpc-svcgssd.service': enable => 'true', }

And I I launch with --debug:
Debug: Executing: '/usr/bin/systemctl is-enabled rpc-svcgssd.service'
Debug: Unable to enable or disable static service rpc-svcgssd.service

Indeed, that's why I want to mask it instead of simply disable it.

systemctl says:
/usr/bin/systemctl is-enabled rpc-svcgssd.service

But worst;
If I put that in my modules:

{'rpc-svcgssd': enable => mask, }

It don't fails, so I'm even not aware that masking fails.

The easy work around is to add a symlink to /dev/null, that's how mask works.

Generated at Thu Oct 17 15:32:56 PDT 2019 using JIRA 7.7.1#77002-sha1:e75ca93d5574d9409c0630b81c894d9065296414.