質問編集履歴

1 rubyのインストールについての記述を追加

koume

koume score 162

2019/03/22 13:11  投稿

capistrano3のdeploy:checkでWARNが出ていますが意味が不明で対処出来ないのでご教示お願いします。
Railsアプリをcapistrano3でデプロイしようとトライしています。
VPSの環境は以下のように設定しています。
VPS=さくらのVPS
ruby2.3.1-p112 ($ ruby -v で 2.3.1p112と表示)
rails 5.1.3 ($ rails -v で 5.3.1と表示)
Apache
passenger
MariaDB
鍵認証でのログイン可能
firewallの設定完了
SSHの設定変更完了
SSL証明書Let's Encryptのインストール完了(httpsアクセス確認完了)
postfixのインストール完了
DNSの設定完了
追記  
VPSにRubyをインストールする際、「$ rvm install 2.3.1」 でインストールしています。  
[vagrant@localhost chibi]$ bundle exec cap production deploy:check を
実行しデプロイのチェックをしましたが以下のようにWARNが表示されてしまいます。
```ここに言語を入力
[vagrant@localhost chibi]$ bundle exec cap production deploy:check
DEBUG [298c0a92] Running [ -d /usr/local/rbenv/versions/2.3.1-p112 ] as panda@XXXX-XXXX.com
DEBUG [298c0a92] Command: [ -d /usr/local/rbenv/versions/2.3.1-p112 ]
Enter passphrase for /home/vagrant/.ssh/id_rsa: (#パスフレーズを入力)
DEBUG [ac41f77b] Finished in 75.550 seconds with exit status 1 (failed).
 WARN rbenv: 2.3.1-p112 is not installed or not found in /usr/local/rbenv/versions/2.3.1-p112 on panda@XXXX-XXXX.com
```
capistrano3のrbenvに関するコードはconfig/deploy.rbに記述しています。
```ここに言語を入力
config/deploy.rb
set :rbenv_type, :user
set :rbenv_path, '/usr/local/rbenv'
set :rbenv_ruby, '2.3.1p112'
set :chruby_ruby, 'ruby-2.3.1p112'
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w{rake gem bundle ruby rails}
set :rbenv_roles, :all
```
```ここに言語を入力
config/deploy/production.rb
server 'XXXX-XXXX.com', user: 'panda', roles: %w{app web db} (#VPSの設定)
set :ssh_options, {
 port: 60354, (#VPSのポート番号)
 keys: %w(/home/vagrant/.ssh/id_rsa), (#仮想マシンの秘密鍵を指定)
 forward_agent: true,
 auth_methods: %w(publickey)
}
```
WARNでnot installedとなっているのでインストールできなかったというのはなんとなくわかります。
config/deploy.rbのset :rbenv_ruby, '2.3.1p112'の部分でWARNになっているみたいなのです。
①自分のVPSにすでにruby2.3.1p112はインストールされているからinstallできません。という警告なのか?
②それともVPSにインストールされていませんという警告なのか?
③VPSにrvmでインストールしているのでdeploy.rbの記述が違っているのか?  
 
もし①の場合はconfig/deploy.rbのコードを削除すれば解決するものなのでしょうか?
②の場合はproduction.rbの設定が間違っているのでしょうか?
たとえば'XXXX-XXXX.com'の部分はIPアドレスを記入しなければいけない。
user: 'panda'はVPSのログインユーザー名ではないのか?
③の場合どのように記述すればいいのか?  
 
などデプロイは初めてで的外れな質問をしているかもしれませんが宜しくお願いします。
  • Vagrant

    1883 questions

    Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

  • VPS

    691 questions

    VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

  • Capistrano

    319 questions

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

  • Ruby on Rails 5

    6030 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る