Git Product home page Git Product logo

knife-block's Introduction

Knife Block

The knife block plugin has been created to enable the use of multiple knife.rb files against multiple chef servers.

The premise is that you have a "block" in which you store all your "knives" and you can choose the one best suited to the task.

Knife Block

Requirements

At present, knife-block requires ruby 1.9.2 or above. This is owing to the use of "Dir.home()" to find a user's home directory.

Installation

If you've installed Chef via rubygems, homebrew, etc, then install using

gem install knife-block

If you've installed Chef via ChefDK, then install using

chef gem install knife-block

How does it work?

Knife looks for knife.rb in ~/.chef - all this script does is create a symlink from the required configuration to knife.rb so that knife can act on the appropriate server.

Create a knife-<service_name>.rb configuration file in your ~/.chef directory for each Chef server that you wish to connect to.

Please note - this script will check to see if knife.rb exists and whether it is a symlink or not.

If knife.rb is not a symlink, the program will exit immediately and tell you what to do.

List all available servers

(This command will also tell you which server is currently selected)

knife block list

The available chef servers are:
    * local-testing [ Currently Selected ]
    * opscode-hosted-chef

Change to a new server

knife block use <server_name>

You are asking to change from local-testing to opscode-hosted-chef. Are you sure? (Y/N) y
The knife configuration has been updated to use opscode-hosted-chef

Create a new server

(Launches "knife configure" and creates $HOME/.chef/knife-<friendlyname>.rb)

knife block new <friendlyname>

Berkshelf integration

Knife block supports Berkshelf, however, the berkshelf config files must be manually created and named "config-<block>.json" and put in the Berkshelf directory (typically ~/.berkshelf). In the future, these files could be automatically created by knife block.

Information about the Berkshelf configuration file options can be found at http://berkshelf.com/ in the 'Configuring Berkshelf' section.

The general format of the config file looks something like this.

{
  "chef":{
      "chef_server_url":"<server_url>",
      "client_key":"<path_to_chef_client_key>",
      "node_name":"<chef_node_name>"
    }
}

These knife plugins are supplied without any warranty or guarantees regarding suitability for purpose.

The code requires far more tests than the simple one that currently exists.

Having said all of that, it works for us!

Copyright:

  • Brandon Burton, 2015
  • Green and Secure IT Limited, 2012 - 2015

License: Apache 2 (http://apache.org/licenses/LICENSE-2.0.html)

knife-block's People

Contributors

solarce avatar benvaljean avatar woohgit avatar agarian-alex avatar onlyhavecans avatar petecheslock avatar tkuhlman avatar j3p0uk avatar anatol avatar jossy avatar mikerowehl avatar jasmeralia avatar giorgian avatar spuder avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.