閲覧ありがとうございます。
しかし回答がつかず、へこみ気味です。。。
もしかしたら、質問が悪いのでしょうか!?
そもそも質問すべき問題ではないとか??
初心者アピールが過ぎるとか??
いろいろ考えてしまいます。。。
もうこの質問へのご回答は結構ですので、もし可能でしたら、今後のためにどうすれば・どのような情報を追加すれば・どう聞き方を変えればご回答いただきやすいのかをアドバイスいただけますと幸いです・・・
貴重なお時間、ありがとうございます。
前提・実現したいこと
herokuもrailsもrubyも初心者です。
heroku上で稼働するrailsアプリケーションを作っています。
- heroku
- Rails5.2.1
- Ruby2.4.0
railsで構築した管理画面のようなページからアップしたファイルを外部サーバにscpで送りたいと考えております。
その前段階として疎通の確認をするため、接続先に"ls"を投げて結果を表示する処理を書いたのですが、
エラーになり接続できないようです。
ローカルのdevelop環境では問題なく接続もlsの結果表示もscpもできました。
(接続先サーバはIP制限をかけているため、heroku環境ではProximoでIPを固定し、それをIP制限から除外しています)
何かヒントだけでもご教示いただけますと幸いです。
発生している問題・エラーメッセージ
SocketError : getaddrinfo: Name or service not known
該当のソースコード
rb
1require 'net/ssh' 2require 'net/scp' 3require 'net/ssh/proxy/http' 4require 'logger' 5 6class Mytest 7 HOST = ENV["MY_HOST"]# '0.0.0.0'のようなIPアドレスです 8 USER = ENV["MY_USER"] 9 PW = ENV["MY_PASS"] 10 11 SEC_KEY = { 12 stg: ENV["MY_PRIVATE_KEY"]# 秘密鍵の中身をconfig:setしています 13 } 14 15 def connect_test 16 logger = Logger.new(STDOUT) 17 proxy = Net::SSH::Proxy::HTTP.new(ENV['PROXIMO_URL']) 18 opt = { 19 passphrase: PW, 20 keys: [], 21 proxy: Rails.env.development? ? nil : proxy, 22 port: 22, 23 logger: logger, 24 verbose: :info, 25 key_data: [ SEC_KEY[:stg] ] 26 } 27 28 Net::SSH.start( HOST, USER, opt ) do |ssh| 29 result = ssh.exec!('ls -R') 30 p result 31 end 32 end 33end 34
試したこと
エラーメッセージで検索すると「resolv-replace.rb」という標準ライブラリに言及した記事が多くヒットするのですが、意味も使い方もわからず試せていません。
補足情報(FW/ツールのバージョンなど)
- rails (5.2.1)
- net-ssh (5.0.2)
- net-scp (1.2.1)
回答2件
あなたの回答
tips
プレビュー