2016-02-09 5 views
1

Эпилог:
* С Dsc-ресурс «сервис», установка сервиса проста. Или программы, которые поставляются с пакетами MSI. Как только они установлены, по умолчанию они также устанавливают службу Windows. [Шикарно: получить обслуживание и т.д.]
Установка окна обслуживания с помощью DSC (желательное состояние конфигурации)

То, что я пытаюсь сделать!
Обычно из каталога Java корня установить TOMCAT обслуживание через:

CMD> Bin \ service.bat установки/пользователь = звёздный разрушитель \

Хотела использовать DSC [Желаемая State Configuration], чтобы установите службу tomcat. Это небольшая часть большей задачи автоматизации, над которой я работаю. Я не видел много примеров командной строки.


Дополнительная информация: Service.bat выглядит следующим образом:

@echo off 
setlocal 

set "SELF=%~dp0%service.bat" 
rem Guess CATALINA_HOME if not defined 
set "CURRENT_DIR=%cd%" 
if not "%CATALINA_HOME%" == "" goto gotHome 
set "CATALINA_HOME=%cd%" 
if exist "%CATALINA_HOME%\bin\tomcat8.exe" goto okHome 
rem CD to the upper dir 
cd .. 
set "CATALINA_HOME=%cd%" 
:gotHome 
if exist "%CATALINA_HOME%\bin\tomcat8.exe" goto okHome 
echo The tomcat8.exe was not found... 
echo The CATALINA_HOME environment variable is not defined correctly. 
echo This environment variable is needed to run this program 
goto end 
:okHome 
rem Make sure prerequisite environment variables are set 
if not "%JAVA_HOME%" == "" goto gotJdkHome 
if not "%JRE_HOME%" == "" goto gotJreHome 
echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 
echo Service will try to guess them from the registry. 
goto okJavaHome 
:gotJreHome 
if not exist "%JRE_HOME%\bin\java.exe" goto noJavaHome 
if not exist "%JRE_HOME%\bin\javaw.exe" goto noJavaHome 
goto okJavaHome 
:gotJdkHome 
if not exist "%JAVA_HOME%\jre\bin\java.exe" goto noJavaHome 
if not exist "%JAVA_HOME%\jre\bin\javaw.exe" goto noJavaHome 
if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome 
if not "%JRE_HOME%" == "" goto okJavaHome 
set "JRE_HOME=%JAVA_HOME%\jre" 
goto okJavaHome 
:noJavaHome 
echo The JAVA_HOME environment variable is not defined correctly 
echo This environment variable is needed to run this program 
echo NB: JAVA_HOME should point to a JDK not a JRE 
goto end 
:okJavaHome 
if not "%CATALINA_BASE%" == "" goto gotBase 
set "CATALINA_BASE=%CATALINA_HOME%" 
:gotBase 

set "EXECUTABLE=%CATALINA_HOME%\bin\tomcat8.exe" 

rem Set default Service name 
set SERVICE_NAME=StarDestroyer 
set DISPLAYNAME=StarDestroyer 

if "x%1x" == "xx" goto displayUsage 
set SERVICE_CMD=%1 
shift 
if "x%1x" == "xx" goto checkServiceCmd 
:checkUser 
if "x%1x" == "x/userx" goto runAsUser 
if "x%1x" == "x--userx" goto runAsUser 
set SERVICE_NAME=%1 
set DISPLAYNAME=%1 
shift 
if "x%1x" == "xx" goto checkServiceCmd 
goto checkUser 
:runAsUser 
shift 
if "x%1x" == "xx" goto displayUsage 
set SERVICE_USER=%1 
shift 
runas /env /savecred /user:%SERVICE_USER% "%COMSPEC% /K \"%SELF%\" %SERVICE_CMD% %SERVICE_NAME%" 
goto end 
:checkServiceCmd 
if /i %SERVICE_CMD% == install goto doInstall 
if /i %SERVICE_CMD% == remove goto doRemove 
if /i %SERVICE_CMD% == uninstall goto doRemove 
echo Unknown parameter "%SERVICE_CMD%" 
:displayUsage 
echo. 
echo Usage: service.bat install/remove [service_name] [/user username] 
goto end 

:doRemove 
rem Remove the service 
echo Removing the service '%SERVICE_NAME%' ... 
echo Using CATALINA_BASE: "%CATALINA_BASE%" 

"%EXECUTABLE%" //DS//%SERVICE_NAME%^
    --LogPath "%CATALINA_BASE%\logs" 
if not errorlevel 1 goto removed 
echo Failed removing '%SERVICE_NAME%' service 
goto end 
:removed 
echo The service '%SERVICE_NAME%' has been removed 
goto end 

:doInstall 
rem Install the service 
echo Installing the service '%SERVICE_NAME%' ... 
echo Using CATALINA_HOME: "%CATALINA_HOME%" 
echo Using CATALINA_BASE: "%CATALINA_BASE%" 
echo Using JAVA_HOME:  "%JAVA_HOME%" 
echo Using JRE_HOME:   "%JRE_HOME%" 

rem Try to use the server jvm 
set "JVM=%JRE_HOME%\bin\server\jvm.dll" 
if exist "%JVM%" goto foundJvm 
rem Try to use the client jvm 
set "JVM=%JRE_HOME%\bin\client\jvm.dll" 
if exist "%JVM%" goto foundJvm 
echo Warning: Neither 'server' nor 'client' jvm.dll was found at JRE_HOME. 
set JVM=auto 
:foundJvm 
echo Using JVM:    "%JVM%" 

set "CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_BASE%\bin\tomcat-juli.jar" 
if not "%CATALINA_HOME%" == "%CATALINA_BASE%" set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\tomcat-juli.jar" 

"%EXECUTABLE%" //IS//%SERVICE_NAME%^
    --Description "Apache Tomcat 8.0.18 Server - http://tomcat.apache.org/"^
    --DisplayName "%DISPLAYNAME%"^
    --Install "%EXECUTABLE%"^
    --LogPath "%CATALINA_BASE%\logs"^
    --StdOutput auto^
    --StdError auto^
    --Classpath "%CLASSPATH%"^
    --Jvm "%JVM%"^
    --StartMode jvm^
    --StopMode jvm^
    --StartPath "%CATALINA_HOME%"^
    --StopPath "%CATALINA_HOME%"^
    --StartClass org.apache.catalina.startup.Bootstrap^
    --StopClass org.apache.catalina.startup.Bootstrap^
    --StartParams start^
    --StopParams stop^
    --JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;-Dconfig.file=%CATALINA_HOME%\conf\starDestroyer.conf"^
    --JvmMs 3072^
    --JvmMx 12888 
if not errorlevel 1 goto installed 
echo Failed installing '%SERVICE_NAME%' service 
goto end 
:installed 
echo The service '%SERVICE_NAME%' has been installed. 

:end 
cd "%CURRENT_DIR%" 
+0

Можете ли вы обновить сообщение, чтобы показать 'service.bat'? Это поможет. – Snake

+0

@Snake Не знаете, как это помогает. Для работы Dsc необходимы изменения. – ifeanyi

ответ

0

Как ваша выборочная установка включает в себя различные шаги, и я не знаю ни одного ресурса в галерее в настоящее время предоставляет это, вы будете для этого нужно написать собственный ресурс DSC. Вы можете найти, как это сделать здесь: Build Custom Windows PowerShell Desired State Configuration Resources

Когда вы его создаете, вы можете использовать оператор вызова, т. Е. &, для вызова вашего файла bat.

Смежные вопросы