onlyifパラメータを使用したと言いますが、そのサービスタイプにはそのパラメータが存在しないようです。
インストール後にのみこのサービスを有効にするにはどうすればよいですか?バイナリインストーラとしてインストールされているので、インストールディレクトリがあるかどうかをテストしてください。
class scom {
service { 'scx-cimd':
ensure => running,
enable => true,
hasstatus => true,
hasrestart => true,
onlyif => "test -f /opt/microsoft/scx"
}
}
サービスにonlyifパラメータがないため、現在のエラーメッセージは「無効なパラメータonlyif」です。インストールディレクトリが存在する場合にのみこのサービスを有効にするにはどうすればよいですか?
答え1
サービスの種類(3.x、2.x)にはexec型(3.x、2.x。
目的のタスクを実行する方法は2つあります。最初の方法は、タスクを実行する一般的で好ましい方法です。 2番目の方法も機能するハッキングです。理想的には、サービスのchkconfigは別々のランチャーでなければなりませんが、すでにこのように構成されていても、サービスをchkconfigingしても何の害もありません。
オプション1.サービスがインストールされていることを確認し、サービスタイプの条件を追加するファクトを作成します。
#service_scx_installed.rb Factor.add('service_scx_installed') は 実行するコードの設定 ファイルが存在する? ('/opt/microsoft/scx') 終わり 終わり #scom.pp クラス不良{ $service_scx_installedの場合{ サービス{'scx-cimd': =>実行を確認してください。 有効=>実際には、 状態=>事実、 再開=>実際には、 } } }
オプション2.すべてのロジックをラージランチャーに入れます。
exec { '開始とchkconfig scxサービス': コマンド => 'chkconfig scx サービスが開きます。サービスscxが再起動されます。 onlyif => ['test -f /opt/microsoft/scx', '!Service scx status'], プロバイダ => "シェル", }