AWS EC2 ubuntu デプロイのメモ

  • このエントリーをはてなブックマークに追加
  • Pocket

AWS EC2 はデフォルトでrootログイン禁止になっていて、デプロイ先のパーミッション等で置きたいディレクトリに触れなかったりする。

rootでログインできるように変更すればいいだけではあるが、それはなんだか嫌なので別の策でなんとかする。

そんなにカッコいいものじゃなくて $ git pull  して $ rsync するだけの作業なんだけど、そんなに何回もやらないしすぐに忘れるのでメモ。

概要

デプロイの流れとしてはこんな感じ。
今回は 1. Deploy 用のページをDeployerに作成してデプロイ処理を実行してもらう。

デプロイ内容もgit pullしてWebサーバにrsyncするだけの簡単なお仕事。

aws ec2

環境

  • AWS EC2 ubuntu 14.04
  • Apache 2.4.7
  • PHP 5.5.9

Deployerの設定

まず、viをデフォルトのエディタに変更する。
nanoを削除してもいいね。

gitの設定

パスワードなしで $ git pull するための公開鍵を作成する。
今回はデプロイをapacheが実行するので ユーザ:www-data で作成する。

あとはひたすらEnterでOK.

www-dataのホームディレクトリは /var/www になっているので
/var/www/.ssh/id_rsa.pub の中身を公開鍵として登録する。

これらについては各ホスティングサービスで説明があるだろうから、各々参照ください。

Webの設定

まず、viをデフォルトの(ry

デプロイされる側にもちょっとした設定が必要。
rootログイン禁止のため、rsyncでDeployerからWebにログインはできるが sudo が使えないためいろいろと不便である。

そこでWebに以下のshellスクリプトを配置して、visudoにubuntuユーザはrsyncだけノーパスでsudoを使えるように設定する。
配置ディレクトリは任意でOK.
Deployerがrsyncする際に使う。

続いてvisudo(viをデフォルトにしていないとnanoで立ち上がる)
最後の行に以下を追加する。

デプロイ処理の作成

設定が整ったのでDeployerに作業してもらうジョブを作成する。
今回はPHPで叩きたいのでshellスクリプト。

キモは –rsync-path にWebに作成したrsync.shを指定すること。
これがないとWebでsudo rsyncが使えない。

あとは上記shellを叩くためのphp.

別にデプロイのジョブはshellスクリプトじゃなくてchefでもAnsibleでもいいし、fabricでもいいし。好きなのでやるといいと思うんだ。

デプロイの内容については他にもWebサーバのキャッシュを消したり、ログを吐いたり、、、いろいろ。

忙しいですな。。。

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。

コメントを残す

*