我有一个rails模型Instance
,代表一个EC2实例。
目前,每当我有一个必须通过SSH方法的方法时,我必须在我想要的地方设置Net :: SSH,这很多。
例如:
Net::SSH.start(ip, 'ubuntu', keys: "mykey.pem" ) do |ssh|
ssh.exec "sudo chmod +x /tmp/provision.sh"
end
有没有办法让'ssh'设置位到Instance模型中?
答案 0 :(得分:3)
如何将它封装到私有方法中,并与调用位置产生连接。
class Instance
def chmod
start do |ssh|
ssh.exec "sudo chmod +x /tmp/provision.sh"
# other operations on ssh
end
end
private
def start
Net::SSH.start(ip, 'ubuntu', keys: "mykey.pem" ) do |ssh|
yield ssh
end
end
end