Ansible запускает удаленный исполняемый файл

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

Вторая проблема заключается в том, что ansible playbook не продвигается вперед после выполнения exe.

Можем ли мы запустить exe в активном сеансе рабочего стола?


person Anuradha Fernando    schedule 30.01.2015    source источник
comment
Я думаю, что это два разных вопроса. Ваш первый вопрос не обязательно связан с Ansible. Мне кажется, вы хотите знать, как выполнить приложение по ssh для активной сессии Windows? Вы можете получить лучшие/быстрые ответы, если снова зададите этот вопрос без ссылки на Ansible. Второй вопрос, в чем именно проблема? Задача зависла или выдает ошибку? Как именно вы называете exe?   -  person udondan    schedule 30.01.2015
comment
Спасибо, Дэниел. Я согласен с вами, это касается не только Ansible, но я хотел знать, можем ли мы инициировать стабильный сеанс WinRM с помощью Ansible? Я не вижу, чтобы мы могли добиться этого с помощью необработанных, командных и скриптовых модулей. Есть ли другой способ инициировать сеанс, чтобы сделать 1. Создать сеанс 2. Сгенерировать учетные данные 3. Выполнить исполняемый файл как службу Что касается 2-й проблемы, да, она зависает, пока работает удаленный исполняемый файл. Я попытался вызвать exe следующими способами: 1. Запустить процесс «путь»/file.exe 2. Запустить путь/file.exe 3. Создал локальные/удаленные сценарии powershell, чтобы сделать то же самое.   -  person Anuradha Fernando    schedule 30.01.2015
comment
Я вижу, значит, программа продолжает работать. Тогда вам придется запустить процесс в фоновом режиме. Я думаю, что в Windows фоновый процесс можно запустить так: START /B C:\path\to\your.exe. Однако я понятия не имею о сеансе WinRM.   -  person udondan    schedule 30.01.2015
comment
Я решил проблему с psexec, это действительно полезный инструмент, и я мог бы решить обе проблемы с его помощью.   -  person Anuradha Fernando    schedule 04.02.2015


Ответы (2)


Я мог бы решить эти проблемы с помощью psexec.

#Creating the credential for the invoke-command.
$strScriptUser = "COMPUTERNAME\USer"
$strPass = "PASSWORD"
$PSS = ConvertTo-SecureString $strPass -AsPlainText -Force
$cred = new-object system.management.automation.PSCredential $strScriptUser,$PSS

#Invoke-Command to call the psexec to start the application.

invoke-command -Computer "." -Scriptblock {
c:\AnsibleTest\ps\psexec.exe -accepteula  -d -h -i 1 -u COMPUTERNAME\USER -p PASSWORD PATH_TO_THE_EXE\PROGRAM.EXE
}  -Credential $cred
person Anuradha Fernando    schedule 03.02.2015

Для этого вы можете использовать модуль win_psexec.

http://docs.ansible.com/ansible/latest/win_psexec_module.html

person Dag Wieers    schedule 21.08.2017