{"id":13905932,"url":"https://github.com/tknerr/bills-kitchen","last_synced_at":"2025-04-12T23:53:47.214Z","repository":{"id":3536960,"uuid":"4596755","full_name":"tknerr/bills-kitchen","owner":"tknerr","description":"All you need for cooking with Chef and Vagrant on Windows you will find in Bill's Kitchen","archived":false,"fork":false,"pushed_at":"2016-10-25T22:52:59.000Z","size":10302,"stargazers_count":130,"open_issues_count":13,"forks_count":17,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-12T23:53:42.099Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/tknerr/bills-kitchen","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tknerr.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-06-08T11:49:35.000Z","updated_at":"2024-11-28T16:30:10.000Z","dependencies_parsed_at":"2022-09-06T04:40:23.680Z","dependency_job_id":null,"html_url":"https://github.com/tknerr/bills-kitchen","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tknerr%2Fbills-kitchen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tknerr%2Fbills-kitchen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tknerr%2Fbills-kitchen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tknerr%2Fbills-kitchen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tknerr","download_url":"https://codeload.github.com/tknerr/bills-kitchen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647237,"owners_count":21139083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-06T23:01:26.661Z","updated_at":"2025-04-12T23:53:47.196Z","avatar_url":"https://github.com/tknerr.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"\n# Bill's Kitchen\n\n[![Build status](https://ci.appveyor.com/api/projects/status/d7j751lm3fm8gu9s/branch/master?svg=true)](https://ci.appveyor.com/project/tknerr/bills-kitchen/branch/master)\n\n\nA [DevPack](http://blog.tknerr.de/blog/2014/10/09/devpack-philosophy-aka-works-on-your-machine/) with all you (or Bill Gates would) need for cooking with Chef, Vagrant and Docker on Windows, shrink-wrapped in a portable package.\n\n![Bill's Kitchen Screenshot](https://raw.github.com/tknerr/bills-kitchen/master/doc/bills_kitchen_screenshot.png)\n\n## Installation and Usage\n\nAs the only prerequisite you need to have a recent version of [VirtualBox](https://www.virtualbox.org/wiki/Downloads) installed (sorry, couldn't make that one portable).\n\nUsing Bill's Kitchen itself is fairly simple. There is nothing to install, just unpack and go:\n\n1. Grab the latest `bills-kitchen-\u003cversion\u003e.7z` package from the [releases page](https://github.com/tknerr/bills-kitchen/releases) and unpack it\n1. Mount the kitchen to the `W:\\` drive by double-clicking the `mount-drive.bat` file\n1. Click `W:\\Launch ConEmu.lnk` to open a command prompt (also runs `W:\\set-env.bat` to set up the environment)\n1. Start hacking!\n\n## What's included?\n\n### Main Tools\n\nThe main tools for cooking with Chef / Vagrant:\n\n* [ChefDK](http://www.getchef.com/downloads/chef-dk/windows/) 0.13.21, with embedded [Ruby](http://rubyinstaller.org/downloads/) 2.1.8\n* [DevKit](http://rubyinstaller.org/add-ons/devkit/) 4.7.2\n* [Vagrant](http://vagrantup.com/) 1.8.1\n* [Terraform](http://terraform.io/) 0.6.16\n* [Packer](http://packer.io/) 0.10.1\n* [Consul](http://consul.io/) 0.6.4\n* [Docker](http://docker.io/) 1.7.1 (using boot2docker)\n\n### Plugins\n\nThese plugins are pre-installed:\n\n * vagrant plugins:\n   * [vagrant-omnibus](https://github.com/schisamo/vagrant-omnibus) - installs omnibus chef in a vagrant VM\n   * [vagrant-cachier](https://github.com/fgrehm/vagrant-cachier) - caches all kinds of packages you install in the vagrant VMs\n   * [vagrant-berkshelf](https://github.com/berkshelf/vagrant-berkshelf) - berkshelf integration for vagrant\n   * [vagrant-toplevel-cookbooks](https://github.com/tknerr/vagrant-toplevel-cookbooks) - support for one top-level cookbook per vagrant VM\n   * [vagrant-proxyconf](https://github.com/tmatilai/vagrant-proxyconf) - for configuring a proxy inside the VMs\n   * [vagrant-winrm](https://github.com/criteo/vagrant-winrm) - super useful when setting up Windows VMs\n   * ...use `vagrant install \u003cplugin\u003e` to install more\n * knife plugins (just as an example):\n   * [knife-audit](https://github.com/jbz/knife-audit) - keeps track of which cookbooks are used by which node\n   * [knife-server](https://github.com/fnichol/knife-server) - sets up and backs up a chef server\n   * ...use `chef gem install \u003cplugin\u003e` to install more\n\n### Supporting Tools\n\nUseful additions for a better cooking experience:\n\n* [ConEmu](https://conemu.github.io/) - a better Windows console with colours, tabs, etc...\n* [Atom](https://atom.io/) - a hackable text editor for the 21st Century\n* [PortableGit](https://git-for-windows.github.io/) - git client for Windows (preconfigured with [kdiff3](http://kdiff3.sourceforge.net/) as diff/merge tool)\n* [putty](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) - the SSH client for Windows\n* [clink](http://mridgers.github.io/clink/) - command completion and Bash-like line editing for Windows\n* [cwRsync](https://www.itefix.net/content/cwrsync-free-edition) which includes `ssh.exe` and `rsync.exe` to make rsync-based Vagrant synced folders work on Windows\n\n### Environmental Changes\n\nThe following changes are applied to your environment by running `W:\\set-env.bat`:\n\n* Constraining as much as possible to the `W:\\` drive:\n * `%HOME%` points to `W:\\home`\n * `%VAGRANT_HOME%` points to `W:\\home\\.vagrant.d`\n * `%CHEFDK_HOME%` points to `W:\\home\\.chefdk`\n * `%PATH%` is preprended with the bin dirs of the tools in `W:\\tools\\`\n * **exception**: `%VBOX_USER_HOME%` points to `%USERPROFILE%`, i.e. VirtualBox VMs are still stored under `%USERPROFILE%`\n* Fixing annoyances:\n * `set TERM=cygwin` to fix vagrant ssh issues\n * `set CYGWIN=nodosfilewarning` to mute vagrant ssh warnings\n * `set ANSICON=true` to get coloured output with Vagrant on Windows\n * `set SSL_CERT_FILE=W:\\home\\cacert.pem` pointing to recent CA certs avoiding Ruby SSL errors\n\n### Aliases\n\nRegistered doskey aliases:\n\n* run `be \u003ccommand\u003e` for `bundle exec \u003ccommand\u003e`\n* run `vi \u003cfile_or_dir\u003e` for `atom \u003cfile_or_dir\u003e`\n* run `b2d \u003cargs\u003e` for `boot2docker \u003cargs\u003e`\n\n### Examples\n\nThese repositories are used for acceptance-testing the [common usage scenarios](https://github.com/tknerr/vagrant-workflow-tests/blob/master/spec/acceptance/usage_scenarios_spec.rb):\n\n* A [sample-toplevel-cookbook](https://github.com/tknerr/sample-toplevel-cookbook) with all kinds cookbook tests: syntax check, style checks, linting, unit and integration tests\n* A [sample-infrastructure-repo](https://github.com/tknerr/sample-infrastructure-repo) which defines a sample server infrastructure with environments and databages via Vagrant / Chef Solo\n\n\n## Building from Source (Development)\n\nAs a prerequisite for building bill's kitchen you need:\n\n* a Windows host\n* 7zip installed in `C:\\Program Files\\7-Zip\\7z.exe`\n* a Ruby environment (if you don't have one, use [this Ruby DevPack](https://github.com/tknerr/ruby-devpack/releases))\n\n### Building Bill's Kitchen\n\nTo build the kitchen (make sure you don't have spaces in the path):\n```\n$ gem install bundler\n$ bundle install\n$ rake build\n```\n\nThis might take a while (you can go fetch a coffee). It will download the external dependencies, install the tools and prepare everything else we need in the kitchen into the `target/build` directory. Finally it runs the `spec/integration` examples to ensure everything is properly installed.\n\n### Running the Acceptance Tests\n\nTo run the more comprehensive `spec/acceptance` tests:\n```\n$ rake acceptance\n```\n\nThis will use various of the tools in combination by running the main usage scenarios, e.g.:\n\n* cloning a sample top-level cookbook and sample infrastructure repository\n* running various commands like `bundle install`, `vagrant plugin install`, `vagrant up`\n* running different kinds of cookbook tests via `knife cookbook test`, `foodcritic`, `chefspec` and `test-kitchen`\n\n### Packaging\n\nFinally, if all the tests pass you can create a portable zip package:\n```\n$ rake package\n```\n\nThis will and finally package everything in the `target/build` directory into `target/bills-kitchen-\u003cversion\u003e.7z`.\n\n### Changing the Mount Drive Letter\n\nBy default the Ruby DevPack will be mounted to the `W:\\` drive. If you need to change it you only have to update the references in these two files:\n\n* `mount-drive.cmd`\n* `unmount-drive.cmd`\n\n## Acknowledgements \u0026 Licensing\n\nBill's Kitchen bundles lots of awesome Open Source software. The copyright owners of this software are mentioned here. For a full-text version of the licenses mentioned above please have a look in the `tools` directory where the respective software is installed.\n\n* Atom - Copyright (c) 2014 GitHub Inc. (MIT license)\n* Vagrant - Copyright (c) 2010-2014 Mitchell Hashimoto (MIT license)\n* Packer - Copyright (c) 2013-2014 Mitchell Hashimoto (MPL-2.0)\n* Terraform - Copyright (c) 2014-2015 HashiCorp (MPL-2.0)\n* Consul - Copyright (c) 2014 HashiCorp (MPL-2.0)\n* ChefDK - Copyright (c) 2014 Chef Software (Apache 2.0 license)\n* ConEmu - Copyright (c) 2006-2008 Zoin \u003czoinen@gmail.com\u003e, 2009-2013 Maximus5 \u003cConEmu.Maximus5@gmail.com\u003e (BSD 3-Clause license)\n* clink - Copyright (c) 2012-2014 Martin Ridgers (MIT license), 1994–2012 Lua.org, PUC-Rio (GPLv3)\n* PortableGit - by msysGit team (GPLv2 license)\n* DevKit - Copyright (c), 2007-2014 RubyInstaller Team (BSD 3-Clause license)\n* kdiff3 - Copyright (c) 2002-2012 Joachim Eibl (GPLv2 license)\n* putty - Copyright (c) 1997-2014 Simon Tatham (MIT license)\n* cwRsync - October 2014, provided by Itefix - https://www.itefix.net/cwrsync (BSD 2-Clause license)\n\nBill's Kitchen itself is published under the MIT license. It is not \"derivative work\" but rather [\"mere aggregation\"](https://www.gnu.org/licenses/gpl-faq.html#MereAggregation) of other software and thus does not need to be licensed under GPL itself.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftknerr%2Fbills-kitchen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftknerr%2Fbills-kitchen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftknerr%2Fbills-kitchen/lists"}