Organization of Chef Cookbooks
For Chef development we are using Berkshelf to manage our cookbooks. Since we are using Berkshelf our cookbooks are located in separate individual repositories, located here: cloudkeep-ops.
There are four main cookbooks to deploy the Barbican application:
- Chef Barbican - Includes recipes for deploying Barbican Worker and API nodes
- Barbican Postgres - Wrapper cookbook for configuring Postgresql in a Barbican cluster
- Barbican RabbitMQ - Wrapper cookbook for configuring RabbitMQ in a Barbican cluster
The cookbooks have been designed that they can be deployed with or without a Chef server.
Instructions for deploying individual cookbooks can be found on each of the respective Read Me docs.
Each cookbook implements a search discovery pattern for Chef server search.
The search discovery is a pattern can be detailed as:
- The use of search discovery is optional
- Allows the user to override the search query used via a node attribute
- Allow the user to specify what node attribute contains the IPv4 address of discovered nodes
- Chef searches are contained inside an individual recipe named search_discovery.rb
- The results of the search discovery recipe are stored in node attributes