Skip to content

chefのdeployリソースを使ってみる

mechamogera edited this page Aug 29, 2012 · 11 revisions

デプロイ構成

[release dir]
|-- current -> [release dir]/releases/20120829044144
|-- releases
|   |-- 20120829040421
|   |-- 20120829042522
|   |-- 20120829043409
|   |-- 20120829043514
|   `-- 20120829044144
`-- shared
  • shared
  • リリース毎のコードに依存しない設定ファイルや一時ファイルを管理する
  • ユーザが管理する必要がある
  • railsアプリだと一般的にはconfig、log、pids、systemディレクトリが存在することになる
  • releases
  • 最新の5つのデプロイしたアプリを保持する
  • デプロイプロセスが作成する
  • current
  • 現在のリリースバージョンへのリンク
  • デプロイプロセスが作成する

デプロイステップ

  • デプロイはcheckout、migrate、symlink、restartの4つのスッテプを実行する
  1. checkout
  • 指定されたリビジョンをSCMリソースを使って取得する。
  • SCMリソースは取得したコードをshared/cached-copyに配置し、releasesにコピーする
  1. migrate
  • migrateが実行されるなら、Chefはデータベース設定ファイルのsharedからreleases/YYYYMMDDHHMMSSへのシンボルリンクを作成する
  • railsアプリでは、migration_commandは一般的にrake db:migrateに設定される
  1. symlink
  • releasesの
  1. restart
Clone this wiki locally