2017-02-23 11 views
0

サービスがインストールされているかどうかをチェックし、窓サービスがインストールされているかどうかをチェックし、インストールされている場合はサービスを開始する方法その他Windowsのシェフでサービスをインストールして起動する場合

if service "VigilEntAgent" 
supports :status => false then 
package 'VigilEntAgent' do 
source 'xxx' 
action :install 
end 
else 
service "VigilEntAgent" do 
action :start 
end 

答えて

0

Windowsサービスがインストールされている場合は

::Win32::Service.exists?('<service_name>') 

で、確認することができます。しかし、あなたがサービスをインストールするpackageリソースを使用している場合は、おそらくあなただけのために右の名前を提供する必要があるため、シェフでのサービスpackage res ource。 コントロールパネル\すべてのコントロールパネルアイテム\プログラムと機能に表示されているものです。シェフは既にパッケージがインストールされていることを確認し、再度インストールしようとはしません。

0

シェフはあなたが何をすべきか、冪等するようになっているのです。

package 'VigilEntAgent' do 
    source 'xxx' 
    action :install 
end 

windows_service "VigilEntAgent" 
    action :start 
end 

サービス名は、あなたからそれを起動するためにNET STARTで使用する1、Windowsサービスマネージャでサービスの短い名前と一致しなければなりませんコマンドラインIIRC。 Windowsサービスが動作する傾向があるかhttps://docs.chef.io/resources.html

+0

は、残念ながら、これではない、特に 'status_command':リソースのシェフ12

ドキュメントがここにあるので、

windows_serviceリソースが利用可能です。 Windows上のサービスは、Unixプラットフォームよりもはるかに関わっています。 – coderanger

+0

私は過去に(nssmベースのサービスのために)これをやったと確信していますが、これはまだ古いクライアントによって処理されていて、大雑把なハックを含んでいる可能性があります。 – Tensibai

関連する問題