我们目前正在尝试使用我们的rails应用程序连接到一个远程KVM服务器,该服务器带有gem 'fog‘+ 'ruby-libvirt’
遵循这个很好的文档:libvirt-fog-provider
require 'fog'
require 'net/ssh'
require 'net/scp'
require 'pp'
client = Fog::Compute.new({
:provider => "libvirt" ,
:libvirt_uri => "qemu+ssh://root@perceval.boap.net/system?socket=/var/run/libvirt/libvirt-sock"
})
s1 = client.servers.all(:name => "demo2")这段代码在一个标准的ruby文件中工作正常,我们建立了到KVM服务器的连接,但是当我们将同样的代码放在rails控制器中时,如下所示:
require 'fog'
require 'net/ssh'
require 'net/scp'
class VirtualMachinesController < ApplicationController
before_action :connect_kvm
def index
head :no_content
end
private
def connect_kvm
client = Fog::Compute.new({
:provider => "libvirt" ,
:libvirt_uri => "qemu+ssh://root@perceval.boap.net/system?socket=/var/run/libvirt/libvirt-sock"
})
end
endRails应用程序显示此错误:
Call to virConnectOpen failed: internal error: received hangup / error event on socket):
app/controllers/virtual_machines_controller.rb:28:in `connect_kvm'rails适合保存ssh会话吗?我是否遗漏了rails的用途
发布于 2014-12-17 03:26:50
我们找到了它不能正常工作的原因。
别忘了在你的Gemfile中添加:
gem 'net-ssh'https://stackoverflow.com/questions/27493357
复制相似问题