2014-01-22 1 views
1

Я хочу установить/удалить Windows-сервис на Puppet, но я не могу найти встроенную функцию. Я придумал сценарий, ниже которого прекрасно работает, но он уродлив.Как установить/удалить службы Windows с помощью марионетки?

exec{ "install_service" : 
    command => "${Sys32}\\cmd.exe /c installutil -i /LogFile=\"${logFile}\" \"${sourcePath}\" | exit 0", 
    path => $Framework4x64, 
} 

Есть ли лучший способ сделать это? Я попытался найти плагин, но еще не нашел его.

+0

Когда вы говорите «установить/удалить Windows Service», вы имеете в виду установку кукольного агента или другого приложения? – rojs

+0

Я хочу установить другое приложение. – Anonymous

ответ

-1

Прочтите документы для установки packages using puppet on Windows.

Это практически так же, как использование ресурса пакета на * nix. Пример из их документации:

Пример они дают:

package { 'mysql': 
     ensure   => '5.5.16', 
     source   => 'N:/packages/mysql-5.5.16-winx64.msi', 
     install_options => ['INSTALLDIR=C:\mysql-5.5'], 
    } 
+0

'package' работает с msi или установочными файлами, но в моем случае это служба Windows, и у меня нет этого файла. В этом примере я использую installutil.exe и передаю путь к файлу и устанавливаю службу. – Anonymous

2

Я не думаю, что есть что-то построили в кукольный. Общий способ «вручную» создание службы в Windows, чтобы использовать утилиту sc.exe (обратите внимание на пробел после и ее отсутствие до= характера):

exec { "install_service" : 
    command => "${Sys32}\\sc.exe create MyService start= auto binPath= \"C:\\path\\to\\your.exe\"", 
    path => $Framework4x64, 
    unless => "${Sys32}\\sc.exe query MyService", 
} 

или PowerShell (предпочтительно с использованием PowerShell provider):

exec { "install_service" : 
    command => "New-Service -Name MyService -StartupType Automatic -BinaryPathName \"C:\\path\\to\\your.exe\"", 
    path  => $Framework4x64, 
    provider => 'powershell', 
    unless => "Get-Service MyService; exit (1-[int]$?)", 
} 
Смежные вопросы