Good day,

Struggling to find a way to run the below vendor-provided batch file via 
Ansible. The script works fine when run manually, but I receive dozens of 
the below error when executing via Ansible win_command or win_shell. I have 
also tried to execute the batch file interactively using become. When ran 
interactively it simply hangs. Hoping to find a solution that doesn't 
involve modifying vendor provided code.

Ansible:

- name: Upgrade RabbitMQ
ansible.windows.win_shell: .\install_rabbitmq.bat
args:
chdir: '{{ install_app_download_dir }}\Prerequisites'

Error:

ERROR: Input redirection is not supported, exiting the process immediately.

install_rabbitmq.bat File:

CLS
@ECHO OFF

SET>>%Temp%\install_rabbitmq.log

CALL sc qc RabbitMQ > NUL
if errorlevel 1 (
goto rabbitchecked
)
CALL sc qc RabbitMQ | findstr "erts-13.1.2" > NUL
if %errorlevel% equ 0 (
ECHO RabbitMQ in the newest version detected. Aborting reinstall
goto newestrabbit
)

:rabbitchecked

CALL SC QUERY AppNetStateService > NUL
if errorlevel 1060 (
ECHO Services are stopped >>%Temp%\install_rabbitmq.log
goto servicesstopped
)
ECHO Stopping Services... >>%Temp%\install_rabbitmq.log
CALL "%~dp0\App.ServiceManager.exe" /Mode:Stop 
2>>%Temp%\install_rabbitmq.log
:servicesstopped

CALL SC QUERY RabbitMQ > NUL
if errorlevel 1060 (
ECHO Rabbit is uninstalled >>%Temp%\install_rabbitmq.log
goto rabbituninstalled
)

ECHO UNinstalling Rabbit >>%Temp%\install_rabbitmq.log
CALL sc stop RabbitMQ 2>>%Temp%\install_rabbitmq.log
:rabbitloop
CALL sc query RabbitMQ | find "STOPPED"
if errorlevel 1 (
  TIMEOUT 10
  goto rabbitloop
)

CALL sc config RabbitMQ binPath= "%ProgramW6432%\Erlang 
OTP\erts-13.1.2\bin\erlsrv.exe"

ECHO Uninstalling RabbitMQ...
CALL "%ProgramW6432%\RabbitMQ Server\uninstall.exe" /S 
2>>%Temp%\install_rabbitmq.log
:LOOPUNINSTALL1
CALL "%~dp0\PSLIST" Un_A /accepteula 2>>%Temp%\install_rabbitmq.log
IF ERRORLEVEL 1 (
    ECHO RabbitMQ uninstallation finished.
    GOTO CONTINUEUNINSTALL1
) ELSE (
    TIMEOUT 2
    GOTO LOOPUNINSTALL1
)

:CONTINUEUNINSTALL1

TIMEOUT 60 >nul 2>&1

:rabbituninstalled

ECHO Uninstalling Erlang OTP...

IF NOT DEFINED ERLANG_HOME (
SET ERLANG_HOME=%ProgramW6432%\erl-24.2.1
)

CALL "%ERLANG_HOME%\uninstall.exe" /S 2>>%Temp%\install_rabbitmq.log
:LOOPUNINSTALL2
CALL "%~dp0\PSLIST" Un_A /accepteula >nul 2>>%Temp%\install_rabbitmq.log
IF ERRORLEVEL 1 (
    ECHO Erlang OTP uninstallation finished.
    GOTO CONTINUEUNINSTALL2
) ELSE (
    TIMEOUT 2
    GOTO LOOPUNINSTALL2
)

:CONTINUEUNINSTALL2

TIMEOUT 60 >nul 2>&1

ECHO Removing cookies, old files and registries...
DEL /F "C:\Windows\System32\config\systemprofile\.erlang.cookie" 
2>>%Temp%\install_rabbitmq.log
DEL /F "%SystemRoot%\.erlang.cookie" 2>>%Temp%\install_rabbitmq.log
DEL /F "%USERPROFILE%\.erlang.cookie" 2>>%Temp%\install_rabbitmq.log

DEL /S /Q /F "%AppData%\RabbitMQ\" 2>>%Temp%\install_rabbitmq.log

reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Ericsson\Erlang" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Ericsson\Erlang" /f

TIMEOUT 10 >nul 2>&1

ECHO Installing Erlang OTP 25...
CALL "%~dp0\otp_win64_25.1.2.exe" /S 2>>%Temp%\install_rabbitmq.log

:LOOP1
CALL "%~dp0\PSLIST" otp_win64_25.1.2 >nul 2>>%Temp%\install_rabbitmq.log
IF ERRORLEVEL 1 (
    ECHO Erlang OTP 25 installation finished.
    GOTO CONTINUE1
) ELSE (
    TIMEOUT 2
    GOTO LOOP1
)

:CONTINUE1
SET ERLANG_HOME=%ProgramW6432%\Erlang OTP
SETX ERLANG_HOME "%ProgramW6432%\Erlang OTP"

ECHO Installing RabbitMQ Server 3.11.4...
CALL "%~dp0\rabbitmq-server-3.11.4.exe" /S 2>>%Temp%\install_rabbitmq.log

:LOOP2
CALL "%~dp0\PSLIST" rabbitmq-server-3.11.4 >nul 
2>>%Temp%\install_rabbitmq.log
IF ERRORLEVEL 1 (
    ECHO RabbitMQ Server 3.11.4 installation finished.
    GOTO CONTINUE2
) ELSE (
    TIMEOUT 2
    GOTO LOOP2
)

:CONTINUE2

ECHO Synchronising Erlang cookies...

:LOOP3
IF EXIST "%USERPROFILE%\.erlang.cookie" (
    GOTO CONTINUE3
) ELSE (
    GOTO LOOP3
)
:CONTINUE3

TIMEOUT 10 >nul 2>&1

DEL /F "C:\Windows\System32\config\systemprofile\.erlang.cookie" 
2>>%Temp%\install_rabbitmq.log
COPY /Y "%USERPROFILE%\.erlang.cookie" 
"C:\Windows\System32\config\systemprofile\.erlang.cookie" 
2>>%Temp%\install_rabbitmq.log

DEL /F "%SystemRoot%\.erlang.cookie" 2>>%Temp%\install_rabbitmq.log
COPY /Y "%USERPROFILE%\.erlang.cookie" "%SystemRoot%\.erlang.cookie" 
2>>%Temp%\install_rabbitmq.log

ECHO Configuring RabbitMQ...

TIMEOUT 10 >nul 2>&1
CALL "%ProgramW6432%\RabbitMQ 
Server\rabbitmq_server-3.11.4\sbin\rabbitmq-service" stop 
2>>%Temp%\install_rabbitmq.log
TIMEOUT 10 >nul 2>&1
CALL "%ProgramW6432%\RabbitMQ 
Server\rabbitmq_server-3.11.4\sbin\rabbitmq-service" start 
2>>%Temp%\install_rabbitmq.log

:LOOP4
CALL "%ProgramW6432%\RabbitMQ 
Server\rabbitmq_server-3.11.4\sbin\rabbitmqctl" status >nul 
2>>%Temp%\install_rabbitmq.log
IF ERRORLEVEL 1 (
    TIMEOUT 5 >nul 2>&1
    GOTO LOOP4
) ELSE (
    GOTO CONTINUE4
)

:CONTINUE4

TIMEOUT 30 >nul 2>&1
CALL "%ProgramW6432%\RabbitMQ 
Server\rabbitmq_server-3.11.4\sbin\rabbitmqctl" start_app 
2>>%Temp%\install_rabbitmq.log
TIMEOUT 30 >nul 2>&1
CALL "%ProgramW6432%\RabbitMQ 
Server\rabbitmq_server-3.11.4\sbin\rabbitmqctl" add_user admin 9 
2>>%Temp%\install_rabbitmq.log
TIMEOUT 5 >nul 2>&1
CALL "%ProgramW6432%\RabbitMQ 
Server\rabbitmq_server-3.11.4\sbin\rabbitmqctl" set_user_tags admin 
administrator 2>>%Temp%\install_rabbitmq.log
CALL "%ProgramW6432%\RabbitMQ 
Server\rabbitmq_server-3.11.4\sbin\rabbitmqctl" add_vhost / 
2>>%Temp%\install_rabbitmq.log
CALL "%ProgramW6432%\RabbitMQ 
Server\rabbitmq_server-3.11.4\sbin\rabbitmqctl" set_permissions -p / admin 
.* .* .* 2>>%Temp%\install_rabbitmq.log
TIMEOUT 5 >nul 2>&1

:LOOP5
CALL "%ProgramW6432%\RabbitMQ 
Server\rabbitmq_server-3.11.4\sbin\rabbitmqctl" status >nul 
2>>%Temp%\install_rabbitmq.log
IF ERRORLEVEL 1 (
    TIMEOUT 5 >nul 2>&1
    GOTO LOOP5
) ELSE (
    GOTO CONTINUE5
)

:CONTINUE5

SC QUERY AppNetStateService > NUL
if errorlevel 1060 (
goto servicesstarted
)
ECHO Restarting services...
CALL "%~dp0\App.ServiceManager.exe" /Mode:Start 
2>>%Temp%\install_rabbitmq.log
:servicesstarted

:newestrabbit

Thank you for any and all assistance!

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/38df0dd3-3d0a-49d7-8bd0-09b63972ce0en%40googlegroups.com.

Reply via email to