Project
Reverse Dependencies for chef
The projects listed here declare chef as a runtime or development dependency
0.01
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
Activity
0.01
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
Activity
0.01
Allows Capistrano to use Chef data for deployment
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
0.01
Define, enforce, and handle violations of validation rules for Chef node attributes. This gem provides the validation engine, and can be used outside of a convergence run; a cookbook (attribute-validator) is available to perform validation during a chef run, at compile or converge time.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
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
Activity
0.01
This library adds the `container_init` Chef resource. Using this resource allows you to hijack service resources and use the runit installation included with chef-container.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
0.01
A streamlined development and deployment workflow for Chef platform.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
Low level manipulation tool for Chef Infra Server
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
Low level manipulation tool for Chef Server 12 and later
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
= DESCRIPTION:
Provides a Chef handler which can report run status, including any changes that were made, to a Graylog2 server. In the case of failed runs a backtrace will be included in the details reported.
= REQUIREMENTS:
* A Graylog2 server running somewhere.
= USAGE:
This example makes of the chef_handler cookbook, place some thing like this in cookbooks/chef_handler/recipes/gelf.rb and add it to your run list. It also assumes your Graylog2 server has set the attribute rsyslog_server to true.
log_server = search(:node, "rsyslog_server:true").first
if log_server
include_recipe "chef_handler::default"
gem_package "chef-gelf" do
action :nothing
end.run_action(:install)
# Make sure the newly installed Gem is loaded.
Gem.clear_paths
require 'chef/gelf'
chef_handler "Chef::GELF::Handler" do
source "chef/gelf"
arguments({
:server => log_server['fqdn']
})
supports :exception => true, :report => true
end.run_action(:enable)
end
Arguments take the form of an options hash, with the following options:
* :server - The server to send messages to.
* :port (12201) - The port to send on.
* :facility (chef-client) - The facility to report under.
* :host (node.fqdn) - The host to report messages as coming from.
* :blacklist ({}) - A hash of cookbooks, resources and actions to ignore in the change list.
= BLACKLISTING:
Some resources report themselves as having updated on every run even if nothing changed, or are just things you don't care about. To reduce the amount of noise in your logs these can be ignored by providing a blacklist. In this example we don't want to be told about the GELF handler being activated:
chef_handler "Chef::GELF::Handler" do
source "chef/gelf"
arguments({
:server => log_server['fqdn'],
:blacklist => {
"chef_handler" => {
"chef_handler" => [ "nothing", "enable" ]
}
}
})
supports :exception => true, :report => true
end.run_action(:enable)
= LICENSE and AUTHOR:
Author:: Jon Wood (<jon@blankpad.net>)
Copyright:: 2011, Blank Pad Development
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
Push reporting stats to Librato metrics
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
Chef report handler for sending run detail information to Opsmatic
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
Stores data about Chef runs for Splunk
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
0.01
Keep your chef server in sync with jenkins
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
Unofficial Chef Server scripts and related stuff. http://wiki.opscode.com/display/chef
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
0.01
LXC bindings for Chef
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
Provisioner for creating LXC containers in Chef Metal.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
Provisioner for managing servers using ssh in Chef Metal.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
chef-nexus is a Ruby gem that provides the `nexus` Chef resource for managing artifacts on Nexus by Sonatype.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
Chef's provider to manage service under daemontools.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity