I'm able to workaround the issue by replacing the vendor's TIMEOUTs with
"ping -n X >NUL".
@jborean93, are there any Ansible flags or tricks that would allow this to
work without modifying the vendor's script?
On Thursday, April 13, 2023 at 12:26:58 PM UTC-5 Joefrey wrote:
> 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/6c6707ad-2e14-4b7e-80e9-e78ea8cd0b7fn%40googlegroups.com.