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

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

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

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

Ruby on Rails 5

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

Ruby

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

Capistrano

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

解決済

railsデプロイ時に「SSHKit::Runner::ExecuteError:」というエラー

k.tachi
k.tachi

総合スコア6

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

Ruby on Rails 5

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

Ruby

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

Capistrano

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

1回答

0評価

0クリップ

8445閲覧

投稿2018/02/24 12:27

前提・実現したいこと

当方初心者です。
railsでアプリを作成中で、以下のサイトを参考にデプロイを試みています。
https://pierrot-space.com/2017/03/05/post-1062/

環境は上記サイトとほぼ同じで、
・ruby 2.3.0
・ruby on rails 5.1.4
・PC windows
・仮想開発環境 VirturlBos + Vagrant + centos7
・本番環境 さくらVPS
・MariaDB
・Nginx
・Unicorn
・Capistrano
・bitbucket
です。

上記サイトの手順通りに進め、
下記ページ
https://pierrot-space.com/2017/03/18/post-1117/
最終部分の

$ export RAILS_ENV=production $ cap production deploy:upload

を実行したところ、
以下のようなエラーメッセージが表示されてしまいます。

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

[vagrant@localhost ****]$ cap production deploy:upload [Deprecation Notice] `set :scm, :git` is deprecated. To ensure your project is compatible with future versions of Capistrano, remove the :scm setting and instead add these lines to your Capfile after `require "capistrano/deploy"`: require "capistrano/scm/git" install_plugin Capistrano::SCM::Git (Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as ***@***.**.***.***: Net::SSH::ConnectionTimeout Caused by: Net::SSH::ConnectionTimeout: Net::SSH::ConnectionTimeout Caused by: Errno::ETIMEDOUT: Connection timed out - connect(2) for ***.**.***.***:22 Tasks: TOP => rbenv:validate (See full trace by running task with --trace)

該当のソースコード

関係がありそうなファイルのソースを記載します。

config/deploy/production.rb

ruby

set :stage, :production set :branch, 'master' role :app, %w{***@***.**.***.***} role :web, %w{***@***.**.***.***} role :db, %w{***@***.**.***.***} set :ssh_options, { keys: [File.expand_path('~/.ssh/insecure_private_key')], forward_agent: true, auth_methods: %w(publickey) }

config/deploy.rb

ruby

# config valid for current version and patch releases of Capistrano lock "~> 3.10.1" set :application, "***" set :repo_url, "git@bitbucket.org:***/memome.git" set :deploy_to, '/var/www/app/***' set :branch, 'master' set :default_stage, "development" set :scm, :git set :deploy_via, :remote_cache set :log_level, :debug set :pty, true # sudo に必要 set :bundle_binstubs, nil # Shared に入るものを指定 set :linked_files, %w{config/database.yml config/secrets.yml} set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets bundle public/system public/assets} # Unicorn set :unicorn_pid, "#{shared_path}/tmp/pids/unicorn.pid" # 5回分のreleasesを保持する set :keep_releases, 5 after 'deploy:publishing', 'deploy:restart' namespace :deploy do # アプリの再起動を行うタスク desc 'Restart application' task :restart do on roles(:app), in: :sequence, wait: 5 do execute :mkdir, '-p', release_path.join('tmp') execute :touch, release_path.join('tmp/restart.txt') end end # linked_files で使用するファイルをアップロードするタスク # deployが行われる前に実行する必要がある。 desc 'upload important files' task :upload do on roles(:app) do |host| execute :mkdir, '-p', "#{shared_path}/config" upload!('config/database.yml',"#{shared_path}/config/database.yml") upload!('config/secrets.yml',"#{shared_path}/config/secrets.yml") end end # webサーバー再起動時にキャッシュを削除する after :restart, :clear_cache do on roles(:web), in: :groups, limit: 3, wait: 10 do # Here we can do anything such as: within release_path do execute :rm, '-rf', release_path.join('tmp/cache') end end end # Flow の before, after のタイミングで上記タスクを実行 before :started, 'deploy:upload' after :finishing, 'deploy:cleanup' # Unicorn 再起動タスク desc 'Restart application' task :restart do invoke 'unicorn:restart' # lib/capustrano/tasks/unicorn.cap 内処理を実行 end end

※「*」部分は、自分の環境に書き換えている部分です。

試したこと

エラーメッセージの最後に、

Caused by: Errno::ETIMEDOUT: Connection timed out - connect(2) for ***.**.***.***:22

と「:22」が記載されていますが、
サーバー側のSSH接続ポートを別の値に変更しているので、そのあたりが原因なのかとも思いますが、
上記のエラーどこの記述が原因で「:22」となっているのかもわからず…。

そもそも、上記のポート以外の問題以外が原因なのかもしれませんが、
何か基本的なところで間違っているような気もするのですが、
当方初心者につき、原因および解決方法がわからずご質問させていただいた次第です。

解決にあたり不足している情報などがあれば追記いたしましのでご指摘ください。

よろしくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

Ruby on Rails 5

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

Ruby

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

Capistrano

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