Немного предыстории: у меня есть скрипт gradle, который я использую для установки и настройки нескольких программ на разных машинах — я запускаю его локально с целью ускорить процесс развертывания. Сценарий gradle получает слой и имя сервера в качестве параметров и устанавливает программное обеспечение, выполняя удаленную команду ssh linux (rhel 6).
C:\work\source\tools\environment-tools>gradle -Player=service -Pserver=demo1 installSamba
Using libraries from: C:\work\source/lib
:installSamba
Trying to override old definition of datatype scp
Trying to override old definition of datatype sshexec
--- Executing: yes | yum install samba
--- failOnError = false, using sudo
>>>>>
Command: echo 'sudo_pass' | sudo -Ss 'yes | yum install samba'
[sudo] password for root:
/bin/bash: yes | yum install samba: command not found
[ant:sshexec] Remote command failed with exit status 127
команда, которую я пытаюсь выполнить: просто использует yum для установки samba, но также запускает yes для автоматической установки samba по умолчанию.
Вопрос: когда я запускаю скрипт, для установки samba удаленно выполняется следующая команда: echo 'sudo_pass' | sudo -Ss 'да | ням установить самбу '
почему это может потерпеть неудачу, если следующее выполняется идеально (но с участием человека, т. е. нажмите y, а затем вернитесь): echo 'sudo_pass' | sudo -Ss yum установить самбу
Я предполагаю, что мне нужно будет правильно настроить следующий небольшой скрипт установки Gradle: есть идеи, что я делаю неправильно?
task installSamba << {
forAllServers { props ->
ssh('yes | yum install samba', props)
}
}
yum
,yum -y install samba
? - person Anders   schedule 20.09.2011