not_if и run_if для пакетного ресурса - PullRequest
0 голосов
/ 12 декабря 2018

Как оцениваются not_if и run_if для пакетного ресурса Chef?Я хочу создать новую службу Windows, если она еще не существует

action :enable do
  batch "install Windows service nexus3_nexus" do
    code "c:/Nexus3/nexus-3.14.0-04/nexus.exe /install nexus3_nexus"
    action :run
    not_if "sc.exe query nexus3_nexus"
  end

Как я понимаю из документации, пакетная команда должна выполняться, если код выхода «sc.exe query nexus3_nexus» равен <> 0 - Строка выполняется как команда оболочки.Если команда возвращает 0, защита применяется. Однако кажется, что, хотя команда возвращает 0, код все еще применяется:

c:\Nexus3\nexus-3.14.0-04\bin>sc.exe query nexus3_ne

SERVICE_NAME: nexus3_nexus
        TYPE               : 110  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUS
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

c:\Nexus3\nexus-3.14.0-04\bin>echo %errorlevel%
0

И ниже вывода команды chef-client-run:

* batch[install Windows service nexus3_nexus] action run[2018-12-[12T11:16:30+01:00] INFO: Processing batch[install Windows service nexus3_nexus] action run (c:/chef/cache/cookbooks/my_nexus/resources/service_windows.rb line 11)
[2018-12-12T11:16:30+01:00] INFO: Processing batch[install Windows service nexus3_nexus] action run (c:/chef/cache/cookbooks/my_nexus/resources/service_windows.rb line 11)
[2018-12-12T11:16:30+01:00] INFO: Processing batch[Guard resource] action run (dynamically defined)
[2018-12-12T11:16:30+01:00] INFO: Processing batch[Guard resource] action run (dynamically defined)
================================================================================
Error executing action `run` on resource 'batch[install Windows service nexus3_nexus]'
================================================================================
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
...