FTPデプロイメント

  • 本番環境はFTPしか利用できない。
  • ステージング環境として仮想サーバー(a)を用意する。
  • (a)に普通のGitリポジトリ(a-git)を作成する。
  • (a-git)にはetckeeperを入れてパーミッションの管理を行う。
  • (a)に共有Gitリポジトリ(a-git-shared)を作成する。
  • Gitの操作方法を分からない人は(a-git)へFTPで更新を行う。
  • (a-git)をcronにて一定間隔ごとに自動コミット、(a-git-shared)への自動プッシュを行う。
  • 自分は(a-git-shared)をから最新のコードを取得し編集する。編集が終わったら(a-git)にマージさせる。
  • (a-git)で自動テストを実行する。
  • (a-git)をFTPで更新する人はパーミッションFTP経由で変更することになるので、それをetckeeperで検知する。
  • etckeeperで検知したパーミッションのdiffから、該当のファイル、ディレクトリに対してtouchコマンドを自動実行してタイムスタンプを更新する。(touchコマンドでタイムスタンプを更新するとlftpのmirrorコマンドが検知してくれる)
  • 本番環境へのデプロイには lftp の mirror を利用する。