# デプロイツール Capistrano

Capistrano は Ruby で書かれた git ソースをサーバーにデプロイ自動化ツール

capistranorb 公式サイト (opens new window)

タスク、フックス、リモート削除、ロールバック、認証機能まで用意してくれている Capistrano 使っていろんなデプロイの対応できそうですね。

Capistrano のいいところ

# インストール

Capistrano は Ruby Gem にバンドしているので、Ruby 2.0以上が必要

Ruby のインストール (opens new window)

gem コマンドが使えるようになったら capistrano インストール

gem install capistrano

コマンドインストールがうまく行かない場合 git clone でも使えます。

git clone https://github.com/capistrano/capistrano.git
cd capistrano
gem build *.gemspec
gem install *.gem

これでインストール完了です。Ruby があれば、依存パッケージなさそうですね。
インストール完了しましたら、capコマンドが使えるようになるので、これからデプロイ作業。

cd my-capistrano-enabled-project
cap production deploy

# capistrano config 設定

設定類は config ディレクトリの下に

config/deploy.db

# gitレポジトリ指定
set :repo_url, 'https://user_name:pass_word@github.com/user_name/web_app.git'

# シンボリックリンク設定ディレクトリ
set :linked_dirs, fetch(:linked_dirs, []).push('log')

# ソースのバージョンの管理数
set :keep_releases, 5

# sudoコマンド実行つけるか
set :use_sudo, false

デプロイ先によって設定ファイルを分けたりします。

  • config/deploy/dev.rb
  • config/deploy/staging.rb
  • config/deploy/product.rb

参考

Rails 中級者が Capistrano3 で Rails アプリを AWS EC2 にデプロイするためにがんばったこと (opens new window)

# デプロイ

デプロイはファイル指定してデプロイコマンドを打つだけ

cap production deploy

# 感想

capistrano で git pull 程度のデプロイならすぐにできそうですが、当たり前ですが、高度な機能タスクとフックなど使おうと思ったらやはり仕様書をちゃんと読んで、やらないといけません。機能が豊富で一回 capstrano 身につけばいろんなことができて楽しいと思います。ルビーインストール、設定あたり、更に AWS 連携ライブラリなどが必要なので、簡単に楽にすぐにデプロイするならやはり Github Action の方が学習コスト少ないので、いいかもしれません。

2020-10-28
  • server
  • aws

関連記事

ジェネレーティブ AI と大規模言語モデル(LLM)を学ぶためのリソース
XZ Utils 事件対応
Ubuntu で Web サーバーを構築する手順
メールサーバー移行と POP & IMAP 設定
Docker Supervisor 使ってバッチ処理
よく使う WSL コマンド
自宅サーバー構築!  Nextcloud で NAS クラウドストレージ
no such file or directory: /usr/share/zsh/vendor-completions/_docker
oh my zsh 使うべし
AWS Lambda Nodejs で chatwork へ post 送信
AWS CloudWatch ログ監視で Lambda 処理
AWS SES メール開封確認  DB に集計
Vim 操作とショートカット
DDNS 無料ダイナミック DNS サービス 4 つ
Nginx 基本設定
SPF メール送信なりすまし対策
Windows Mac Linux hosts ファイル場所
AWS Unresolved resource dependencies [AWSEBV2LoadBalancer] エラー
ディスク容量を確認する df コマンド
Laravel Address already in use の原因
content-security-policy 設定
AWS Elastic Beanstalk php.ini 設定変更
AWS Elastic Beanstalk 環境設定
AWS のタイムゾーンを UTC 協定世界時から JST 日本標準時に変更
Docker の基本的な使い方
Amazon DynamoDB 制限調査
AWS 504 Gateway Timeout エラー対応
Shell と Bash のいろいろ
Mac ターミナル SSH 接続設定
Elastic Beanstalk \$\SERVER['REMOTEADDR'] 取得できない
crontab 設定いろいろ
AWS EC2 の amazon-linux-extras の話
解決! xserver php バージョンアップした時に ssh 環境に反映されない
youtube 見れるように vpn サーバー建ててみた
xserver に vim インストール
xserver に nodejs インストール
レンタルサーバーなら xserver おすすめ理由
Docker command でドッカー練習する時のメモ
Windows10 Home に Docker 入れた時のメモ
Centos7 Webserver 構築の時のメモ