capistrano+gitでソースコードのデプロイサーバ構築⑤(post-receiveでプッシュと同時にデプロイ)

前回までに構築してきたcapistranoを使用したデプロイサーバーを使い、gitのプッシュを行ったと同時に本番環境にデプロイされる仕組みを構築したいと思います。

今まで私はSubversion(SVN)を使用してきました。
SVNではpost-commitという機能(設定)により、コミットと同時にスクリプトを実行する事ができますが、
gitも同様で様々なタイミングでスクリプトを実行することができるようです。
今回はその中で、リモートリポジトリ(今回はデプロイサーバがgitのリモートリポジトリとなります)にプッシュした直後にデプロイコマンドを実行したいので
そのための機能であるpost-receiveというものを使用して設定します。
続きを読む capistrano+gitでソースコードのデプロイサーバ構築⑤(post-receiveでプッシュと同時にデプロイ)

capistrano+gitでソースコードのデプロイサーバ構築④(capistranoの設定)

これまでにデプロイサーバにgitサーバのインストール、capistranoのインストールを行い、デプロイ先のWebサーバを構築してきました。

今回は、gitに登録されたファイルをデプロイサーバからWebサーバにcapistranoを使用してデプロイする簡単な設定を行います。
続きを読む capistrano+gitでソースコードのデプロイサーバ構築④(capistranoの設定)

capistrano+gitでソースコードのデプロイサーバ構築③(capistranoのインストール)

今回は、capistrano+gitでソースコードのデプロイサーバ構築①で構築したデプロイサーバにcapistranoのインストールを行いたいと思います。

capistranoはrubyで動作するもので、元からyumでインストールされているrubyを使ってそのままcapistranoのインストールを行ったところエラーが出ることがあったため、rbenv(rubyのバージョンを切り替えてくれるものらしい)とruby-buildというのを使ってrubyをインストールしたいと思います。

ということで構築後の環境はデプロイサーバ内に
・git 2.1.0 (①でインストール済み)
・rbenv 0.4.0-129-g7e0e85b
・ruby-build 20141225-3-g1c0509a
・ruby 2.2.0p0
・capistrano 3.3.5
というミドルウェアをインストールしていきます。
続きを読む capistrano+gitでソースコードのデプロイサーバ構築③(capistranoのインストール)

capistrano+gitでソースコードのデプロイサーバ構築②(デプロイ先Web(Apache+PHP)サーバ構築)

前回に引き続き、capistrano+gitのデプロイサーバを構築したいと思います。

今回は、前回構築したgitサーバからcapistranoでデプロイする対象となるサーバを構築したいと思います。

基本的に今後構築していくサーバはApache+PHPのWebサーバとしたいと思いますので、今回もその想定で構築していきます。

続きを読む capistrano+gitでソースコードのデプロイサーバ構築②(デプロイ先Web(Apache+PHP)サーバ構築)

capistrano+gitでソースコードのデプロイサーバ構築①(gitサーバ構築)

私の当面行うことになっているミッションと現在の状況は下記の通り
・既存プライベートクラウド環境に構築されたサーバ群のAWSへの移設
・既存プライベートクラウド環境はVMWareのようなメジャーな仮想化OSではなく、残念ながらVM import/exportツールなどに頼る事は難しそう
・お客様毎にサーバ群を分けて大量に構築を行いたい
・お客様毎にサーバの台数はいつでもスケールできるようにしたい
・現在はSVNにてコードの管理を行っており、コミットと同時にデプロイされるようにしている

上記の状況から今回は下記のような環境構築を試みたいと思う。
・capistranoを使用しデプロイを自動化したい
・SCMをgitに変えてみる(gitでSSHを使ってコードのアップロードが行えることを利点と考えた)
・git-hookを使って、コミットと同時にデプロイを実現させたい
・1台のEC2インスタンスを全てのお客様用のデプロイサーバとして使用

今回は上記の実現を行うため、まずはgitサーバの構築を行う手順を記載する
続きを読む capistrano+gitでソースコードのデプロイサーバ構築①(gitサーバ構築)