Следующий манифест Puppet предназначен для установки двоичного файла и файла описания службы systemd для запуска двоичный файл как службу и для перезапуска службы при изменении двоичного файла или описания службы.
class my_module::my_service {
file { '/usr/local/bin/my_service':
notify => Service['my_service'],
owner => root,
group => root,
mode => '500',
ensure => present,
source => 'puppet:///modules/my_module/my_service',
}
file { '/lib/systemd/system/my_service.service':
notify => Service['my_service'],
owner => root,
group => root,
mode => '400',
ensure => present,
source => 'puppet:///modules/my_module/my_service.service',
}
service { 'my_service':
require => [ File['/usr/local/bin/my_service'],
File['/lib/systemd/system/my_service.service'] ],
enable => true,
ensure => running,
provider => systemd,
}
}
Когда я пытаюсь применить его, я получаю следующие сообщения об ошибках:
Warning: /Stage[main]/My_module::My_service/File[/usr/local/bin/my_service]:
Skipping because of failed dependencies
Notice: /Stage[main]/My_module::My_service/File[/lib/systemd/system/my_service.service]:
Dependency User[root] has failures: true
Warning: /Stage[main]/My_module::My_service/File[/lib/systemd/system/my_service.service]:
Skipping because of failed dependencies
Notice: /Stage[main]/My_module::My_service/Service[my_service]:
Dependency User[root] has failures: true
Warning: /Stage[main]/My_module::My_service/Service[my_service]:
Skipping because of failed dependencies
Где в этом манифесте возникает зависимость от пользователя [root]
и как я могу решить возникшую проблему? (Мне кажется, что даже если цитирование root
файла файла
вызвало неявную зависимость от пользователя [root]
, этот специальный пользователь уже должен существовать в любом case.)
Основная причина заключалась в том, что я запустил марионеточный агент -f
из непривилегированной учетной записи. Добавление sudo
решило эту проблему.
Вы действительно не можете избежать таких неявных отношений. Ваш каталог пытается управлять пользователем root, и если это не удается, Puppet откажется подключаться к зависимым ресурсам.
Вы должны либо выяснить, почему ресурс User [root]
отказывает в первую очередь (это это серьезный красный флаг, разумеется), или, если возможно, прекратите управление этим ресурсом (обычно действительно бессмысленно управлять этой самой учетной записью).