У меня действительно странная проблема с systemd на RHEL7. Файл /run/puppetboot.lock не удаляется в конце выполнения для файла модуля. Как ни странно, когда я заменяю строки «марионеточный агент» на «/ usr / bin / true», их файл блокировки удаляется, как и ожидалось.
[Unit]
Description=Extra Puppet runs
Wants=basic.target
Before=puppet.service
After=basic.target network.target puppetmaster.service
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=-/etc/sysconfig/puppetagent
EnvironmentFile=-/etc/sysconfig/puppet
ExecStart=/usr/bin/touch /run/puppetboot.lock
ExecStart=/usr/bin/puppet agent --onetime --no-daemonize --ignoreschedules
ExecStart=/usr/bin/puppet agent --onetime --no-daemonize --ignoreschedules
ExecStart=/usr/bin/rm -f /run/puppetboot.lock
ExecStart=/bin/bash -c "/bin/test -x /usr/local/sbin/reboot-if-needed && /usr/local/sbin/reboot-if-needed"
[Install]
WantedBy=multi-user.target puppet.service
Я использую файл блокировки как сигнал о том, что конфигурация и настройка при ранней загрузке завершены, поэтому я могу отправить электронное письмо администраторам для настройки после сборки. Я надеюсь избежать добавления файла модуля systemd только для того, чтобы отправлять мне неприятные электронные письма после создания нового сервера.