動機
デプロイツールとしてCapistranoを使ってみたいと思い色々調べてみたのですが、awsやherokuへのデプロイ方法の説明ばかりでサクッとローカル環境で試す方法が見つからなかったので自分で調べて試してみました。
準備
ローカルにssh接続できないといけません。
まずはシステム環境設定 → 共有 → リモートログインを許可します。
設定できたら試しにsshで接続できるか試してみます。
$ ssh localhost
次に適当なgithubにdeploy対象のレポジトリを作成します。
私は適当にrailsのアプリをローカルで作りリモートのレポジトリにpushしておきました。
Capistranoの導入
gemfileに下記の物を追加しました。
group :development, :test do
gem 'capistrano'
gem 'capistrano-bundler'
gem 'capistrano-rails'
end
恐らくrailsでなければcapistrano-railsは不要かと思われます。
参考サイトにもそう書かれていた。
上記の記述を足した後に
bundle install
その後に
bundle exec cap install
そうするとCapistranoの設定ファイルが出来上がります。
Capistranoの設定ファイルの編集
config/ → deploy → production.rb に下記を追記します。
server "localhost",
user: "ユーザー名",
ssh_options: {
user: "ユーザー名", # overrides user setting above
forward_agent: false,
password: "パスワード"
}
ssh接続するときの設定を記述しているのかと思います。
次にconfig/ → deploy.rb に設定を書きます。
私は下記を元々あるファイルに追記しました。
set :application, "capistrano"
set :repo_url, "githubの作ったレポジトリ名"
set :deploy_to, "ローカルでデプロイをする場所"
set :keep_releases, 5
deployする
下記のコマンドを実行します。
cap production deploy
無事に成功すればcurrentのディレクトリとreleaseのディレクトリができれイルかと思います。
最後に
Capistranoの記事を色々と読んだのですが手を動かしてないのでうまく理解できませんでした。
でもこれで大まかま流れはわかりましたしローカルで実行できるので色々と試していきたいと思います。
最後に「システム環境設定 → 共有 → リモートログイン」を許可していたかと思いますがこちらはそのまま許可の状態にしないで使い終わったらチェックを外してください。
セキュリティ上よくないので、、、、。
また、初心者ですのでどこか至らない点がありましたらご指摘いただければと思います。