Giter Site home page Giter Site logo

peterhughesdev / kitchenplan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kitchenplan/kitchenplan

0.0 1.0 0.0 5.36 MB

Human readable, yet advanced configuration files and a wrapper script around installation and usage of chef-solo, librarian, chef and bundler to completely install OSX and Ubuntu computers. Heavily influenced by boxen and pivotal_workstation.

Home Page: http://kitchenplan.github.io/kitchenplan

Ruby 100.00%

kitchenplan's Introduction

Kitchenplan

Why Kitchenplan?

Read about this project and it's values and goals in this blog post: http://vanderveer.be/blog/2013/04/14/presenting-kitchenplan/

Using Kitchenplan

I myself will use this version, so you can learn from my config files. But you best start of by forking this repo. You will need it to store your configuration files. See the Custom Repository section for more info.

On OSX 10.8 Mountain Lion you should install XCode and the Command Line Tools from within XCode before you start. For 10.9 Mavericks the script will prompt you to install the Command Line Tools automatically.

Now, to get Kitchenplan on your computer, run the following commands:

ruby -e "$(curl -fsSL https://raw.github.com/kitchenplan/kitchenplan/master/go)"

Custom Repository

If the repo for your organisation is private, continue with setting up your SSH keys. Open up a Terminal window and run ssh-keygen. After this command finishes, run cat ~/.ssh/id_rsa.pub and copy the output. Put this in your Github account or where you need your private key in your repo hosting of your choice.

The KITCHENPLAN_REPO environment variable can be set before installation to customize what git repository is used for kitchen plan.

$ export KITCHENPLAN_REPO=https://github.com/mycompany/kitchenplan.git
$ ruby -e "$(curl -fsSL https://raw.github.com/kitchenplan/kitchenplan/master/go)"

Custom Recipes

Before you run the commadn above, or manually run the./kitchenplan command, you should first create a custom config file. The config system will always start off with default.yml. This will contain the recipes for every person in your organisation. Next it it will look at the file yourusername.yml (with the username logged in on the computer as yourusername) for your custom settings. Ofcourse there will be a lot of shared config when your organisation has departments of different types of personel. So you can define group config files and assign one or more groups to a user. The roderik.yml (found here) is my personal config file and it will fall back to this config if you don't have a personal file.

When you are done with that, run the go script or run kitchenplan manually and wait for a while. After the command finishes, reboot your computer and you are good to go.

Command line tools

There are some useful command line options, run kitchenplan -d or look here:

Usage: kitchenplan [options]
    -d, --debug                      Show debug information
    -c, --update-cookbooks           Update the Chef cookbooks
        --[no-]chef                  Run chef (defaults to yes)

Common options:
    -h, --help                       Show this message
        --version                    Show version

Caveat

We are running this project in production for both OSX and Ubuntu development machines. So I'm pretty sure it all works just fine. But, in the gap between two new installs, all the applications we install, and all community cookbooks are in constant development and can potentially break the install. I always suggest to our people that they run it first in a virtual machine (You can easily install OSX in a VMware Fusion trial, or use Vagrant for Linux testing).

Want to contribute?

Fork and send pull requests or just idea's and issues via the issue tracker. If you need a new recipe, fork the chef-* repo's and change the url in the Cheffile to make it fetch your version. Add it and send a pull request. For now we support OSX and the debian family (only tested on Ubuntu). Other operating systems are welcome!

More questions, ping me at Twitter @r0derik or visit our HipChat channel.

Acknowledgements

This project is inspired and built by using components and idea's from: Boxen, pivotal_workstation, Opscode cookbooks, and more. Please take any imitation as a the highest form of flattery. If you feel the source or acknowledgements are not sufficient, please let me know how you want it to be resolved.

kitchenplan's People

Contributors

bitdeli-chef avatar jozefizso avatar krispypen avatar peterhughesdev avatar rickard-von-essen avatar roderik avatar wireframe avatar

Watchers

 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.