質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Q&A

2回答

4009閲覧

capistranoでdeployしようとするとssh::connectiontimeoutのエラーになってしまう

AstroYuta

総合スコア6

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

0グッド

0クリップ

投稿2017/04/18 15:16

###前提・実現したいこと

  • localで作った簡単なrailsのアプリケーションをサーバー側にデプロイしようとしています。
  • このサイトを参考にしています
  • Capistrano+nginx+Unicornでやろうとしています。

###発生している問題・エラーメッセージ

  • bundle exec cap staging deploy でデプロイしようとすると、次のようなエラーが出てデプロイできません。
(Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as ***@***.**.***.***: Net::SSH::ConnectionTimeout Net::SSH::ConnectionTimeout: Net::SSH::ConnectionTimeout Errno::ETIMEDOUT: Operation timed out - connect(2) for ***.**.***.***:** Tasks: TOP => git:check => git:wrapper (See full trace by running task with --trace)

###該当のソースコード

  • 関係がありそうなファイルのソースです
  • config/deploy/staging.rb

ruby

1set :rails_env, "staging" 2set :unicorn_rack_env, "staging" 3role :app, %w{***@***.**.***.***:**} 4role :web, %w{***@***.**.***.***:**} 5role :db, %w{***@***.**.***.***:**} 6server '***@***.**.***.***:**', user: '***', roles: %w{web app}, my_property: :my_value 7 8set :ssh_options, { 9 keys: %w(/home/***/.ssh/(secretkey), 10 forward_agent: true, 11 auth_methods: %w{publickey}, 12}
  • config/unicorn/staging.rb

Ruby

1@app_path = '/var/www/***/***' 2working_directory @app_path + "/current" 3 4worker_processes 2 5preload_app true 6timeout 30 7listen "/tmp/unicorn.sock", :backlog => 64 8pid "/var/www/***/***/shared/tmp/pids/unicorn.pid" 9 10stderr_path "#{@app_path}/log/unicorn.stderr.log" 11stdout_path "#{@app_path}/log/unicorn.stdout.log" 12 13before_fork do |server, worker| 14 ENV['BUNDLE_GEMFILE'] = File.expand_path('Gemfile', ENV['RAILS_ROOT']) 15end 16 17before_fork do |server, worker| 18 if defined?(ActiveRecord::Base) 19 ActiveRecord::Base.connection.disconnect! 20 end 21 22 old_pid = "#{server.config[:pid]}.oldbin" 23 if File.exists?(old_pid) && server.pid != old_pid 24 begin 25 Process.kill("QUIT", File.read(old_pid).to_i) 26 rescue Errno::ENOENT, Errno::ESRCH 27 end 28 end 29end 30 31after_fork do |server, worker| 32 if defined?(ActiveRecord::Base) 33 ActiveRecord::Base.establish_connection 34 end 35end
  • config/deploy.rb

Ruby

1# config valid only for Capistrano 3.1 2lock '3.4.1' 3 4set :application, 'my_app_name' 5set :repo_url, 'https://github.com/***/***.git' 6 7set :branch, 'master' 8set :deploy_to, '/var/www/***/***' 9set :scm, :git 10set :log_level, :debug 11set :pty, true 12set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets bundle public/system public/assets} 13set :default_env, { path: "/usr/local/rbenv/shims:/usr/local/rbenv/bin:$PATH" } 14set :keep_releases, 5 15 16after 'deploy:publishing', 'deploy:restart' 17namespace :deploy do 18 19 desc 'Restart application' 20 task :restart do 21 invoke 'unicorn:restart' 22 end 23end 24

###試したこと

  • 参考サイトのmyapp/publicの部分を自分のサーバーのディレクトリに変えたのですが、変えすぎてしまったのでしょうか…
  • サーバーには普通にやればssh-keyをつかって接続をすることができます。capistranoだとうまくいかない、といったところです。
  • 何か気づくことがございましたら教えてくださるようお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

config/productionのserverは設定されてますか?

EC2使用の場合は、Elastic IPを入れると良いと思います。

投稿2020/06/16 09:06

kickthekaz

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ssh-add -Aは試してみましたか??

投稿2017/04/29 14:52

daikitakaya

総合スコア229

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問