Я пытался написать небольшую библиотеку, используя Thor, чтобы помочь мне в быстром создании новых проектов и сайтов.Я написал этот небольшой метод:
def ssh(cmd)
Net::SSH.start( server_ip, user, :port => port) do |session|
session.exec cmd
end
end
, чтобы просто помогать мне запускать быстрые команды на удаленных серверах при необходимости.
Проблема в том, что когда мне нужно запустить команду под sudo на удаленном конце, сценарий просто зависает на мне.Например, при выполнении этого ...
ssh("sudo cp #{file_from_path} #{file_to_path}" )
Сценарий запросит у меня пароль
[sudo] password for user:
Но тогда все наберется после ввода.
Может кто-нибудь узнать, почему он зависает именно так, и что я могу сделать, чтобы запустить команду sudo на удаленном сервере под Net :: SSH (или какой-нибудь другой вариант)?начал писать эту библиотеку как рецепт под Capistrano, пока я не наткнулся на Тора, и подумал, что это будет хороший шанс опробовать его.Я не против того, чтобы переключать все это обратно на Capistrano, если это необходимо, но я был бы очень удивлен, если бы не было простого способа запуска команд sudo на удаленном сервере.