Linux sudo, [ant: sshexec] Удаленная команда завершилась неудачно с состоянием выхода 127 - PullRequest
0 голосов
/ 20 сентября 2011

Немного предыстории: У меня есть скрипт 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 'да | yum install samba '

почему бы это не сработало, если следующее выполняется идеально (но с человеческим взаимодействием, то есть нажмите y, а затем вернитесь): echo 'sudo_pass' | sudo -Ss yum установить самбу

Полагаю, мне нужно было бы правильно настроить следующий небольшой скрипт установки gradle: есть идеи, что я делаю неправильно?

task installSamba << {
  forAllServers { props ->
    ssh('yes | yum install samba', props)
  }
}

1 Ответ

1 голос
/ 21 сентября 2011

Позже я обнаружил, что понижение sudo на удаленной машине было необходимо для выполнения скрипта gradle, подобного приведенному выше. понижение, которое я сделал, было с версии: 1.7.4p5 до версии sudo 1.7.2p2. Это рабочая альтернатива, но не лучшее решение. Я бы предпочел, чтобы на хосте работало последнее обновление sudo. Тогда возникает реальный вопрос: как можно было бы выполнить и исправить вышеуказанный простой сценарий, чтобы он выполнял

...