2

Ubuntu 11.10で Dropboxコマンドライン ユーティリティ/デーモンを使用していますが、Puppet では機能しません。

Dropbox を手動で正常に制御できます。

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

ただし、ドロップボックスが常に実行されるように Puppet を構成すると、次のログ メッセージで失敗します。

(/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

これが私のパペットマニフェストファイルです:

class dropbox {
  include dropbox::service
}

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

上記のエラー メッセージは、Dropbox が既に実行されている場合でも同じエラー メッセージ (「起動できませんでした」) が表示されるため、Dropbox の「ステータス」コマンドが Puppet に対して機能していないことを示しているようです。

何かご意見は?

4

2 に答える 2

3

2.7 より前のバージョンの Puppet は、デフォルトで /etc/init.d/service status コマンドを使用しません。プロセス テーブルでプロセス名を検索するため、デーモン プロセス名がサービス名と異なる場合、これらの動作により次のようなエラーが発生します。

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

puppet エージェントを実行するたびに。そのサービスに動作ステータス コマンドがあるかどうかを確認する必要があります。

 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」を入れます。

于 2012-02-25T09:33:13.897 に答える