如何使用Chef Script安装Windows服务

时间:2015-06-04 09:06:05

标签: ruby powershell service chef chef-recipe

这是要求: 我正在尝试使用厨师从远程计算机安装Windows服务。该脚本应验证是否已安装该服务。如果安装然后删除并重新安装它。因为我是厨师的新手,我很难找到解决方案。

这就是我的尝试:

execute 'Installing Service TestService' do
        command "sc create \"TestService\" binPath= D:/Deploy/TestService.exe "
        action :run
end

它安装了服务,但我无法实现验证/检查是否存在并重新安装。即使我不知道上面的脚本是否是标准脚本。有人可以帮忙吗? 如果有人可以为windows dotNet开发人员推荐初级厨师教程,那也很棒吗?

1 个答案:

答案 0 :(得分:2)

尝试删除已存在powershell_script块的服务,并通知execute块安装/重新安装该服务。这样安装只会在删除服务后触发。

powershell_script 'delete_if_exist' do
  code <<-EOH
     $Service = Get-WmiObject -Class Win32_Service -Filter "Name='TestService'"
     if ($Service) {
        $Service.Delete() 
     }
  EOH
  notifies :run, 'execute[Installing Service TestService]', :immediately
end

execute 'Installing Service TestService' do
  command "sc create \"TestService\" binPath= D:/Deploy/TestService.exe "
  action :nothing
end