Почему кукольный не может запустить демон dropbox? - PullRequest
2 голосов
/ 09 февраля 2012

Я использую утилиту командной строки Dropbox / daemon в Ubuntu 11.10, но она не работает с Puppet.

Я могу успешно управлять Dropbox вручную:

$ sudo /etc/init.d/dropbox [status/start/stop/status]

Однако, когда я настраиваю Puppet, чтобы убедиться, что Dropbox всегда работает, он завершается с этим сообщением журнала:

(/Stage[main]/Dropbox::Service/Service[dropbox]/ensure) change from stopped to running failed: Could not start Service[dropbox]: Execution of '/etc/init.d/dropbox start' returned 1:  at /etc/puppet/modules/dropbox/manifests/init.pp:8

Вот мой файл манифеста Puppet:

class dropbox {
  include dropbox::service
}

class dropbox::service {
  service { "dropbox":
    ensure => running,
  }
}

ВышеПохоже, что сообщение об ошибке также подразумевает, что команда dropbox «status» не работает для Puppet, потому что я получаю то же сообщение об ошибке («Не удалось запустить»), даже когда Dropbox уже запущен.

Есть мысли?

Ответы [ 2 ]

3 голосов
/ 25 февраля 2012

В версиях Puppet до 2.7 по умолчанию не используется команда /etc/init.d/service status. Они ищут имя процесса в таблице процессов, поэтому, если имя процесса демона отличается от имени службы, такое поведение приведет к ошибкам, таким как:

 ...Service[dropbox]/ensure) change from stopped to running failed...

на каждое исполнение кукольного агента. Вы должны проверить, есть ли у этой службы команда рабочего статуса:

 sudo /etc/init.d/dropbox status; echo $?
 # That command should return output with "running" text and return code 0 like:
 dropboxd for USER dropbox: running (pid 9823)
 0

Затем скажите марионетке использовать ее вместо собственных (<2.7) механизмов - укажите «hasstatus => true» в определении сервиса.

1 голос
/ 10 декабря 2014

Чтобы добавить это, поскольку это популярный в Google хит "Puppet не может начать обслуживание", у меня была похожая проблема в CentOS.Оказывается, моя проблема была из-за sudo : у меня был

Defaults requiretty

в моем файле sudoers .Изменив это значение на

Defaults requiretty
Defaults:root !requiretty

Исправлена ​​проблема, и позволил моему служебному скрипту (который использовал sudo для запуска демона) работать через марионетку.

Надеюсь, что это поможет будущим пользователям Google!

...