-
Notifications
You must be signed in to change notification settings - Fork 6
Home
Batali is a simple, light weight cookbook resolver. It is now in a beta state, moving quickly towards a proper stable release.
Batali is a cookbook resolver. It is built to be lightweight but feature rich. Batali helps to manage your cookbooks and stay out of your way, providing just enough magic for common needs when working with Chef managed infrastructure.
- Batali basics
- Batali configuration
- Using Batali with ChefDK
- Using Batali with ChefSpec
- Using Batali with Test Kitchen
One of the goals for batali was being light weight, in the same vein
as the librarian project. This means it does nothing more than
manage local cookbooks. This includes dependency and constraint
resolution, as well as providing a local installation of assets
defined within the generated manifest. It provides no extra features
outside of that scope. If you need to upload cookbooks to the chef
server, perhaps knife upload
is a good tool?
Batali does not rely on the chef gem to function. This removes any dependencies on gems that may be incompatible outside the MRI platform. JRuby users rejoice!
Manifest files are fully isolated. The resolver does not need to perform any actions for installing cookbooks defined within the manifest. This allows for easy transmission and direct installation of a manifest without the requirement of re-pulling information from sources. Version constraints can be considered locked via the manifest file and it can be checked into source control to track changes.
Full infrastructure resolution involves more than just a single environment, often with many moving parts. It's possible and even desirable at times for the same cookbook to be at different versions for different environments. Batali aims to solve possible issues with full infrastructure resolution. This is ideally suited for resolving dependencies from an infrastructure repository.
When working with multiple environments in a common infrastructure,
often resolving a single dependency path will not provide a correct
resolution. This is because environments or run lists can provide
extra constraints that will result in unsolvable resolutions on
individual nodes. In this case we want to know what cookbooks are
allowed within a solution, and ensure all those cookbooks are
available. Batali provides infrastructure level manifests by setting
the infrastructure
flag, either as a configuration element or as a
command line option. See configuration for more information.