|« PreviousNext »|
|Did this page help you? Yes | No | Tell us about it...|
You can customize deployment by implementing a recipe to perform the required customization and assign it to the appropriate layer's Deploy event. An alternative and sometimes simpler approach—especially if you don't need to implement a cookbook for other purposes—is to use Chef deployment hooks to run your customization code. In addition, custom Deploy recipes run after the deployment has already been performed by the built-in recipes. Deployment hooks allow you to interact during a deployment, for example, after the app's code is checked out of the repository but before Apache is restarted.
Chef deploys apps in four stages:
Checkout–Downloads the files from the repository
Migrate–Runs a migration, as required
Restart–Restarts the application
Chef deployment hooks provide a simple way to customize a deployment by optionally
running a user-supplied Ruby application after each stage completes. To use deployment
hooks, implement one or more Ruby applications and place them in your app's
/deploy directory. The application must have one of the
following names, which determines when it runs.
before_migrate.rb runs after the Checkout stage is complete
but before Migrate.
before_symlink.rb runs after the Migrate stage is complete
but before Symlink.
before_restart.rb runs after the Symlink stage is complete
but before Restart.
after_restart.rb runs after the Restart stage is
Chef deployment hooks can access the node object just like recipes. For more information on how to use deployment hooks and what information a hook can access, see Deploy Phases.