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

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

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

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

Ruby

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

SSH

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Capistrano

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

Q&A

解決済

1回答

1849閲覧

capistrano.log エラーの原因を確認したい

yujiro0320

総合スコア11

Ruby on Rails 5

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

Ruby

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

SSH

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Capistrano

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

0グッド

1クリップ

投稿2019/08/21 09:10

#知りたい事
直前まで自動デプロイが可能であったが、自動デプロイができなくなった。
デバッグがうまくできず対応に困っている。
まず、確認したいのは
なぜsecrets.ymlがuploadingしなくなったのかを知りたい。

#log_capistrano.logの確認

INFO --------------------------------------------------------------------------- INFO START 2019-08-21 17:37:27 +0900 cap production deploy INFO --------------------------------------------------------------------------- DEBUG [14a37743] Running [ -d $HOME/.rbenv/versions/2.5.1 ] as ec2-user@**.**.**.*** DEBUG [14a37743] Command: [ -d $HOME/.rbenv/versions/2.5.1 ] DEBUG [14a37743] Finished in 0.636 seconds with exit status 0 (successful). DEBUG [39be5a7b] Running [ ! -d /var/www/ruby-like/shared/config ] as ec2-user@**.**.**.*** DEBUG [39be5a7b] Command: [ ! -d /var/www/ruby-like/shared/config ] DEBUG [39be5a7b] Finished in 0.136 seconds with exit status 1 (failed).ここで終了

強制終了となる。問題なくできていた前回のデプロイ内容と比較する。

直前のデプロイの内容

secrets.ymlをuploadingするように動いている。
記述も処理速度以外に違いが見受けられない。

INFO --------------------------------------------------------------------------- INFO START 2019-08-21 15:42:30 +0900 cap production deploy INFO --------------------------------------------------------------------------- DEBUG [a4f90f48] Running [ -d $HOME/.rbenv/versions/2.5.1 ] asec2-user@**.**.**.*** DEBUG [a4f90f48] Command: [ -d $HOME/.rbenv/versions/2.5.1 ] DEBUG [a4f90f48] Finished in 0.931 seconds with exit status 0 (successful). DEBUG [eda26c70] Running [ ! -d /var/www/ruby-like/shared/config ]as ec2-user@**.**.**.*** DEBUG [eda26c70] Command: [ ! -d /var/www/ruby-like/shared/config ] DEBUG [eda26c70] Finished in 0.200 seconds with exit status 1 (failed). >>>>>>>>>>>>ここから先に繋がっている。>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DEBUG Uploading config/secrets.yml 0.0% INFO Uploading config/secrets.yml 100.0% INFO [c2facd63] Running /usr/bin/env mkdir -p /tmp as ec2-user@**.**.**.*** DEBUG [c2facd63] Command: ( export RBENV_ROOT="$HOME/.rbenv" PATH="/usr/local/rbenv/shims:/usr/local/rbenv/bin:$PATH" AWS_ACCESS_KEY_ID="*******************" AWS_SECRET_ACCESS_KEY="*******************" RBENV_VERSION="2.5.1" ; /usr/bin/env mkdir -p /tmp ) INFO [c2facd63] Finished in 0.666 seconds with exit status 0 (successful). >>>>>>>>>>>>以下デプロイが続く>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

対応ファイルの記述

config-deploy.rbの記載確認

# config valid for current version and patch releases of Capistrano lock "~> 3.11.0" # Capistranoのログの表示に利用する set :application, "ruby-like" # どのリポジトリからアプリをpullするかを指定する set :repo_url, 'git@github.com:*****/*****.git' # バージョンが変わっても共通で参照するディレクトリを指定 set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system', 'public/uploads') set :rbenv_type, :user set :rbenv_ruby, '2.5.1' # どの公開鍵を利用してデプロイするか set :ssh_options, auth_methods: ['publickey'], keys: ['~/.ssh/*****.pem'] # プロセス番号を記載したファイルの場所 set :unicorn_pid, -> { "#{shared_path}/tmp/pids/unicorn.pid" } # Unicornの設定ファイルの場所 set :unicorn_config_path, -> { "#{current_path}/config/unicorn.rb" } set :keep_releases, 5 # S3に登録するにあたり設定した環境変数をよみこますための設定 set :default_env, { rbenv_root: "/usr/local/rbenv", path: "/usr/local/rbenv/shims:/usr/local/rbenv/bin:$PATH", AWS_ACCESS_KEY_ID: ENV["AWS_ACCESS_KEY_ID"], AWS_SECRET_ACCESS_KEY: ENV["AWS_SECRET_ACCESS_KEY"] } # secrets.yml用のシンボリックリンクを追加 set :linked_files, %w{ config/secrets.yml } # デプロイ処理が終わった後、Unicornを再起動するための記述 after 'deploy:publishing', 'deploy:restart' namespace :deploy do task :restart do invoke 'unicorn:restart' end desc 'upload secrets.yml' task :upload do on roles(:app) do |host| if test "[ ! -d #{shared_path}/config ]" execute "mkdir -p #{shared_path}/config" end upload!('config/secrets.yml', "#{shared_path}/config/secrets.yml") end end before :starting, 'deploy:upload' after :finishing, 'deploy:cleanup' end

対応

本番環境下でログを確認した。

対応ディレクトリまで移動

$cd .ssh/ $ssh -i *****.pem ec2-user@********** $cd /var/www/アプリ名/ #productionログの確認 $less shared/log/production.log #unicornログの確認 $less shared/log/unicorn.stderr.log

原因に繋がるようなログを見つける事ができず。

このような場合、確認するべき事項なども合わせてご教授頂ければ幸いです。

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました

#結論
config/secret.ymlファイルが削除されていたので、記述を復活

config/secret.yml

yml

1 2development: 3 secret_key_base: ~~~~~~~~ 4 aws_access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %> 5 aws_secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %> 6 7test: 8 secret_key_base: ~~~~~~~~ 9 10production: 11 secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 12 aws_access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %> 13 aws_secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %> 14

#反省点

git管理しているファイルが全てだと思い込みがあった。
secret.ymlファイルはgit管理下から外していた為、github上で変更履歴を比較しても見つけられない事。

#最後に

このような記述をしている為、secret.ymlを読みこます処理が発生する。
環境変数は.bash_profileに記述した。

# ローカル環境 $ vim ~/.bash_profile

config/deploy.rb

一部抜粋しています。 # S3に登録するにあたり設定した環境変数をよみこますための設定 set :default_env, { rbenv_root: "/usr/local/rbenv", path: "/usr/local/rbenv/shims:/usr/local/rbenv/bin:$PATH", AWS_ACCESS_KEY_ID: ENV["AWS_ACCESS_KEY_ID"], AWS_SECRET_ACCESS_KEY: ENV["AWS_SECRET_ACCESS_KEY"] } # secrets.yml用のシンボリックリンクを追加 set :linked_files, %w{ config/secrets.yml }

投稿2019/08/22 05:37

yujiro0320

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問