Project
Reverse Dependencies for chef
The projects listed here declare chef as a runtime or development dependency
0.0
A commandline utility which will collect cookbooks defined by berkshelf, compress them, and store them in S3 to be fetched by RightScale
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Generates a Berksfile from JSON style Chef environment files. Also support extension to environment file with 'cookbook_locations'. Verifies the Berksfile is consistent (all dependencies met) and will upload updated cookbooks and env files to a chef server.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
bindle is a server and development environment provisioning tool. Using Chef, Vagrant, and Fog it organizes and simplifies the creation and management of your development environment and allows you to use the same provisioning tools on your production servers.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.0
Discover hosts using chef search for blender
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Extras for Chef's knife command
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
A gem to perform command over parallel ssh connections on multiple chef serverspec. Output is rspec-like.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Chef is a tool for managing server automation. A good butcher makes for a good chef.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.0
Chef handler for sending exceptions & updated resources to Campfire
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.0
Allows capistrano to use Chef data, roles and environments for deployment. Provides basics tasks to upgrade server with chef
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Provides easy support for using Capistrano and Chef together
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.0
Some tools for dynamically creating clusters on top of OpenNebula. This project is a
playground and implementations will be most likely domain specific to my company
in early versions, although I try to abstract from that as much as possible.
This is WORK IN PROGRESS!
All versions <1.0.0 should be treated as development and unstable versions.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
A Chef Knife plugin that facilitates creating and configuring applications in Chef
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Generates wiki documentation from Chef node attributes using ERB templates.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.0
A Chef analytics API client with minimal dependencies
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Allows chef-client/solo to grab cookbooks on the fly using berkshelf
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
0.0
Chef-Berksfile-Env
==================
A Chef plugin which allows you to lock down your Chef Environment's cookbook versions with a Berksfile.
This is effectively the same as doing `berks apply ...` but via `knife environment from file ...`.
View the [Change Log](https://github.com/bbaugher/chef-berksfile-env/blob/master/CHANGELOG.md) to see what has changed.
Installation
------------
/opt/chef/embedded/bin/gem install chef-berksfile-env
Usage
-----
In your chef repo create a Berksfile next to your Chef environment file like this,
chef-repo/environments/[ENV_NAME]/Berksfile
This is the default location that will used by the plugin. We have to put the Berksfile in its own
directory since [multiple Berksfiles can't exist in the same directory](https://github.com/berkshelf/berkshelf/issues/1247).
The berksfile should include any cookbooks that your nodes or roles explicitly mention for that environment,
source "https://supermarket.getchef.com"
cookbook "java"
cookbook "yum", "~> 2.0"
...
Next we need to generate our Berksfile's lock file,
berks install
Your environment file must by in `.rb` format and look like this,
require 'chef-berksfile-env'
# The name must be defined first so we can use it to find the Berksfile
name "my_env"
# Load Berksfile locked dependencies as my environment's cookbook version contraints
load_berksfile
...
Now our environment will use the locked versions of the cookbooks and transitive dependencies generated by our Berksfile.
Upgrading to the latest dependecies is now as simple as,
berks install
Our Berksfile also provides an easy way to ensure all the cookbooks and their versions that our environment requires
are uploaded to our chef-server,
berks upload
How the Plugin Finds the Berksfile
----------------------------------
If you are curious how the plugin knows to find the Berksfile in `chef-repo/environments/[ENV]/Berksfile`, you
want to put your Berksfile somewhere else or you have run into this error `Expected Berksfile at [/path/../Berksfile] but does not exist`,
this section will explain how this works and ways to tweak the path or fix your error.
`load_berksfile` has an optional argument which represents the path to your Berksfile. This path can be pseduo relative (explained in a moment)
or absolute. By default the value is `environments/[ENV_NAME]/Berksfile`.
By pseduo relative I mean that its a relative path but the plugin will check to see if the directory we are executing from partially matches
our relative path. So if we are running knife from `/home/chef-repo/environments` and our relative path is `chef-repo/environments/dev/Berksfile`
the plugin will see that the relative path is partially included in our execution directory and will attempt to merge the two to come up with
`/home/chef-repo/environments/dev/Berksfile`. If we can't make any match at all we attempt to guess the path by just joining the relative path
with our execution directory.
So why do we do this? Well the only way to use this plugin is if your environment is in Ruby format. Chef's `knife from file ...` uses Ruby's
`instance_eval` in order to do this. This means the code on Chef's end effectively looks like this,
env.instance_eval(IO.read(env_ruby_file))
which means that any context about the location of the environment file is lost. So we have no great way to discern the location of our environment
Ruby file, so instead we guess.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Skeleton for a testable Chef cookbook
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
# Chef Data Region
## Description
Chef Data Region extends the `Chef::DSL::DataQuery` module's
`data_bag_item` method with the ability to dynamically expand the data
bag name in a configurable, environment-specific manner.
## Motivation
This gem exists to address the following scenario:
An organization maintains data in Chef data bag items. The data is
deployed to several data center environments and is stored in data
bags whose names reference the environments. The organization wants to
write environment-agnostic recipes that access the data bags without
explicitly referencing the data bags by their environment names.
As a concrete example, imagine the organization maintains encrypted
data for three deployment environments: development, staging, and
production. It maintains this data in three data bags, one for each
environment, with data for services named `gadget` and `widget` in
items:
| Environment | Bag | Item |
|-------------+----------------+--------|
| Development | secure-dev | gadget |
| Development | secure-dev | widget |
| Production | secure-prod | gadget |
| Production | secure-prod | widget |
| Staging | secure-staging | gadget |
| Staging | secure-staging | widget |
The items are encrypted with a key unique to that environment to
maximize security.
Now consider how a recipe would access these bags. When then recipe is
running, it needs to know the data center environment in order to
construct the bag name. The organization would most likely assign the
enviroment name to a node attribute. In a naive implementation, each
recipe would include logic that examined the attribute's value to
determine which bag to load. This would obviously duplicate code.
Imagine instead that the organization wants to reference the bag by
the name `secure` and rely on an _abstraction_ to translate `secure`
into the environment-specific bag name.
This gem provides that abstraction.
## Features
This gem overrides the `data_bag_item` method with configurable logic
that dynamically decides which bag to load. It retains API
compatibility with `Chef::DSL::DataQuery#data_bag_item`, so existing
recipes that call `data_bag_item` work without modification.
The gem imposes no constraints on data bag item structure.
## Configuration
Assign the region name to a node attribute that varies by environment:
node.default['local'][region'] = 'staging'
Add the following configuration to Chef Client's `client.rb` file.
* Require the gem:
require 'chef/data_region'
* Configure the gem with a hash that maps a bag name to an expansion
pattern:
Chef::DataRegion.add(
'secure',
{ attribute: %w(local region), pattern: 'secure-%<attribute>s' }
)
## Bag name expansion
The gem expands bag names using Ruby's `format` method.
_More pending..._
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
chefdepartie uses chef-zero to provide a local, testing chef server
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity
0.0
Executes a chef-client run with only the application's role and the application cookbook in the run list. For example, for the application "foo" the run list would be: role:foo application
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Activity