Ruby net / ssh(/ multi)嵌套连接

时间:2016-04-25 17:42:09

标签: ruby mongodb ssh

我试图使用ruby连接到mongodb。但首先我需要连接到托管mongo的服务器。

有一个堡垒主机可以公开连接。数据库主机只能连接到堡垒。

这是我的代码:

require 'net/ssh/gateway'
require 'mongo'
include Mongo

ops_host = '<PUBLIC IP/DNS>'
db_host = '<PRIVATE IP>'
port = '27017'
user = 'ubuntu'
key = File.read("<PATHTOKEY>")
gateway = Net::SSH::Gateway.new( ops_host, user, :key_data => key, :keys_only => TRUE)
gateway.ssh(db_host, user, :key_data => key, :keys_only => TRUE) do |ssh| 
  puts ssh.exec!("hostname") 
  client  = MongoClient.new(db_host, port)
  db   = client.db('<DBNAME>')
  coll = db.collection('profiles')
  puts coll.find().count()
end

我能够连接到数据库主机,因为puts ssh.exec!("hostname")命令返回正确的主机名,但我无法连接mongo,因为我一直收到Failed to connect to a master node错误。

0 个答案:

没有答案